若希望站在多个请求之间共用某个模型属性数据,则可以在控制器类上标注一个@SessionAttributes,springmvc 将在模型中对应的属性暂存到HttpSession中
@SessionAttributes除了通过属性名指定需要放到会话中的属性外,还可以通过模型属性的对象类型指定哪些模型属性需要放到会话中
@SessionAttributes(types=User.class)会将隐含模型中所有类型为User.class的属性添加到会话中。
@SessionAttributes(value={"user1","user2"})
@SessionAttributes(types={User.class,Dept.class})
@SessionAttributes(value={"user1","user2"},types={Dept.class})
1.在success.jsp中设置一个超链接,指向新建的result.jsp文件,传递city,看是否能传递过去
result.jsp
<body>
city:${requsetScope.city }
</body>
结果失败了,参数不能由success.jsp中传到result.jsp中,因为city放在了MapModel中,所以它只有在请求域中才是有效的。
@SessionAtttributes(value={});
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.