使用@SessionAttributes注解处理数据

向ModelAndView及Map、ModelMap、Model参数中增加数据时,数据会被放到request作用域中。如果还要把数据放到seseion作用域中,就需要使用@SessionAttributes注解。


@SessionAttributes只能使用在类定义上,不能使用在方法上。


@SessionAttributes 除了可以通过属性名指定需要放到会 话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中 例如:

@SessionAttributes(types=Person.class)会将model中所有类型为 User的属性添加到会话中。


@SessionAttributes(value={“person”, “room”}) 会将model中属性名为person和room的属性添加到会话中。


@SessionAttributes(types={User.class, Dept.class}) 会将model中所有类型为 User和Dept的属性添加到会话中。


@SessionAttributes(value={“user1”,“user2”},types={Dept.class})会将model中属性名为user1和user2以及类型为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";
    }
}

你可能感兴趣的:(使用@SessionAttributes注解处理数据)