@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(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";
    }
}