SpringMVC 在内部使用了一个 org.springframework.ui.Model接口存储模型数据。
在方法中加入 Map 或者 Model 类型的参数
@RequestMapping("/testSessionAttributes") public String testSessionAttributes(Map<String,Object> map){ Address address = new Address("安徽","滁州"); User user = new User("testName","123456",15,address); map.put("user",user); map.put("address",address); return SUCCESS; }success 页面
<body> <h4>Sucess Page</h4> <br><br> request user : ${requestScope.user} <br><br> session user : ${sessionScope.user} <br><br> request address : ${requestScope.address} <br><br> session address : ${sessionScope.address} </body>测试结果: 可以发现数据只传入 request 中,那可不可以将数据放入 session 里呢?
若要在多个请求之间共用某个模型属性数据,可以在类上添加 SessionAttributes 注解,可以将模型中对应的属性暂存到HttpSession中。
示例:
//只能放在类上,不能放在方法上 @SessionAttributes(value = {"user"},types = {Address.class}) @RequestMapping("/springmvc") @Controller public class HelloWorld {@SessionAttributes(value = {“user1”,“user2”}) 可以获取多个键的值 @SessionAttributes(types = {User.class}) 将模型中所有类型为 User.class 的属性放到 session 中
测试结果:
