@SessionAttributes注記を使用したデータの処理
1357 ワード
ModelAndViewおよびMap、ModelMap、Modelパラメータにデータを追加すると、request役割ドメインにデータが配置されます.seseionの役割ドメインにデータを配置する場合は、@SessionAttributes注釈を使用する必要があります.
@SessionAttributesはクラス定義でのみ使用でき、メソッドでは使用できません.
@SessionAttributesは、セッションに配置する属性を属性名で指定できるほか、モデル属性のオブジェクトタイプで、セッションに配置する必要があるモデル属性を指定できます.たとえば、次のようにします.
@SessionAttributes(types=Person.class)は、モデル内のすべてのタイプのUserのプロパティをセッションに追加します.
@SessionAttributes(value={"person","room"})では、modelの属性名がpersonとroomの属性がセッションに追加されます.
@SessionAttributes(types={User.class,Dept.class})は、モデル内のすべてのタイプのUserおよびDeptのプロパティをセッションに追加します.
@SessionAttributes(value={"user 1","user 2"},types={Dept.class})では、modelのプロパティ名がuser 1とuser 2、およびタイプがDeptのプロパティがセッションに追加されます.valueとtypeの間には並列関係があります.
@SessionAttributesはクラス定義でのみ使用でき、メソッドでは使用できません.
@SessionAttributesは、セッションに配置する属性を属性名で指定できるほか、モデル属性のオブジェクトタイプで、セッションに配置する必要があるモデル属性を指定できます.たとえば、次のようにします.
@SessionAttributes(types=Person.class)は、モデル内のすべてのタイプのUserのプロパティをセッションに追加します.
@SessionAttributes(value={"person","room"})では、modelの属性名がpersonとroomの属性がセッションに追加されます.
@SessionAttributes(types={User.class,Dept.class})は、モデル内のすべてのタイプのUserおよびDeptのプロパティをセッションに追加します.
@SessionAttributes(value={"user 1","user 2"},types={Dept.class})では、modelのプロパティ名がuser 1とuser 2、およびタイプがDeptのプロパティがセッションに追加されます.valueとtypeの間には並列関係があります.
@SessionAttributes(value = {"roomDetail"}) // request roomDetail session
@Controller
@RequestMapping("/find")
public class RoomController {
@Autowired
private RoomService roomService;
//
@RequestMapping("/roomInformation")
public String roomInformation(Model model,@RequestParam(value="location") String location) throws Exception{
Room room = roomService.roomInformation(location);
model.addAttribute("roomDetail",room); // room request
return "roomDetail";
}
}