7、@SessionAttributes——模型数据

上一节只是把数据模型放在了请求域中,只能在两个页面之间的请求可用,但在多个页面之间请求就得不到数据。@SessionAttributes可以保证多个请求共用一个模型数据。@SessionAttributes注解中有两个属性:一个是value,用于指定哪个对象要放在session域中;type用于指定哪种类型的对象放在session域中,两个参数可以同时配合使用。例如:
–@SessionAttributes(types=User.class) 会将隐含模型中所有类型
为 User.class 的属性添加到会话中。
– @SessionAttributes(value={“user1”, “user2”})
– @SessionAttributes(types={User.class, Dept.class})
– @SessionAttributes(value={“user1”, “user2”},
示例如下:

首先进行web.xml和spring的xml配置,配置方法同SpringMVC之注解RequestMapping用法一节中一样。

一、创建请求

创建index.jsp,用于发送请求,内容为:

<a href="springMVC/testSessionAttributes">Test SessionAttributes</a>

二、创建控制器

控制器用于截获请求,然后处理业务,并把业务数据放到请求域中,在请求域中获取业务数据。

/*value={"person"}表示person对象可以放在session会话中;
types={String.class}表示String类型的对象可以放在session会话中*/
@SessionAttributes(value={"person"}, types={String.class})
@Controller
@RequestMapping("/springMVC")
public class TestSpringMVC {

    @RequestMapping("/testSessionAttributes")
    public String testSessionAttributes(Map<String, Object> map){
        Person person = new Person("lzj", 20, "male");
        map.put("person", person);
        map.put("username", "lzj");
        return "success";
    }
}

如果不加@SessionAttributes注解,只是把数据模型放在了request会话中了,加上之后,把数据模型不只放在了request中,还放在了session会话中了。

三、创建视图

下面创建success.jsp视图,并在视图中分别获取request和session中的数据。

    request person:${requestScope.person }
    <br><br>
    session person:${sessionScope.person }
    <br><br>
    request username:${requestScope.username }
    <br><br>
    session username:${sessionScope.username }
    <br><br>

点击index.jsp中请求连接,经控制器截获并处理后,把业务数据放在了请求域中和session域中。success.jsp显示的视图上信息为:

 request person:Person [username=lzj, age=20, sex=male] 
 session person:Person [username=lzj, age=20, sex=male] 
 request username:lzj 
 session username:lzj 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值