若但愿站在多个请求之间共用某个模型属性数据,则能够在控制器类上标注一个@SessionAttributes,springmvc 将在模型中对应的属性暂存到HttpSession中spring
@SessionAttributes除了经过属性名指定须要放到会话中的属性外,还能够经过模型属性的对象类型指定哪些模型属性须要放到会话中session
@SessionAttributes(types=User.class)会将隐含模型中全部类型为User.class的属性添加到会话中。mvc
@SessionAttributes(value={"user1","user2"})app
@SessionAttributes(types={User.class,Dept.class})jsp
@SessionAttributes(value={"user1","user2"},types={Dept.class})spa
1.在success.jsp中设置一个超连接,指向新建的result.jsp文件,传递city,看是否能传递过去code
result.jsp对象
<body> city:${requsetScope.city } </body>
结果失败了,参数不能由success.jsp中传到result.jsp中,由于city放在了MapModel中,因此它只有在请求域中才是有效的。ci
@SessionAtttributes(value={});it
1.要求放置的值必须在模型数据里面(request范围中有限)
2.标注属性:
经过属性key完成session的共享数据处置
1.value:String()
value:{"a","b"}
2.能够经过模型数据当中的类型,共享数据的设置
@RequestMapping("/springmvc") @SessionAttributes(value={"city"}) public class helloworldhandler {
${requestScope.city} ${sessionScope.city} <a href="result">result</a>
city:${sessionScope.city }
@SessionAttributes(types={String.class})
@SessonAttribute将搜索因此String类型属性
city:${sessionScope.city } name:${sessionScope.name }
最后有一个值得注意的地方,若是在模型数据中没有属性的值,如在success.jsp中没有name,则在result.jsp中也不会接收到name.