@SessionAttributes

 

若但愿站在多个请求之间共用某个模型属性数据,则能够在控制器类上标注一个@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.

相关文章
相关标签/搜索