@SessionAttributes

本文详细介绍了如何使用SpringMVC中的@SessionAttributes注解来实现在多个请求间共享模型属性数据。包括通过属性名和类型指定需要放入会话中的模型属性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

141634_M39H_3829307.png

结果失败了,参数不能由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 }

143409_WYkq_3829307.png

@SessionAttributes(types={String.class})

@SessonAttribute将搜索所以String类型属性 

city:${sessionScope.city }
name:${sessionScope.name }

144755_6kP1_3829307.png

144801_YiGc_3829307.png

最后有一个值得注意的地方,如果在模型数据中没有属性的值,如在success.jsp中没有name,则在result.jsp中也不会接收到name.

转载于:https://my.oschina.net/u/3829307/blog/1800362

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值