SpringMVC 处理模型数据 - MAP 与 SessionAttributes注解
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 中
测试结果: