java attributes用法_@SessionAttributes 的使用

@SessionAttributes 注解只用作用在 类 上,作用是将指定的 Model 的键值对保存在 session 中。可以让其他请求共用 session 中的键值对。

指定保存的属性名

作用是将 Model 中指定 属性名 的键值对保存在 session 中。

下面的代码中,/user-information 请求将 Model 中的 user 对象添加到了 session 中。所以在 /testSession 请求中,虽然没有在 Model 中设置键值对,但是在页面中仍然可以取得 user 对象。因为 user 对象被添加到了 session 中,其他请求仍然可以取得。

使用 @SessionAttributes(value = {"user1", "user2", "user3"}) 可以指定多个添加到 session 中的 Model 属性名。

package com.pudding.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.SessionAttributes;

import com.pudding.bean.User;

@Controller

@SessionAttributes("user")

public class SessionAttributesController {

@RequestMapping("/user-information")

public void setSessionModel(Model model) {

User user = new User("小明", 18);

model.addAttribute("user", user);

}

@RequestMapping("/testSession")

public String get() {

return "test";

}

}

指定保存的属性类型

作用是将 Model 中指定 类型 的键值对保存在 session 中。

同样的,可以使用 @SessionAttributes(types = {User.class, Person.class}) 来指定多个类型。

package com.pudding.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.SessionAttributes;

import com.pudding.bean.User;

@Controller

@SessionAttributes("user")

public class SessionAttributesController {

@RequestMapping("/user-information")

public void setSessionModel(Model model) {

User user = new User("小明", 18);

model.addAttribute("user", user);

}

@RequestMapping("/testSession")

public String get() {

return "test";

}

}

混合使用

当然,你也可以混合使用上面的两种方式:@SessionAttributes(value = {"user1", "user2"}, types={Persion.class}) 会将 model 中属性名为 user1 和 user2 以及类型为 Person 的属性添加到 session 中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值