【SSM】SSM之SpringMVC框架:@SessionAttributes注解

@SessionAttributes注解用于将控制类中的方法返回的对应的数据保存在session中,该注解只能用在类上。下面将介绍几种将数据传递给页面的同时怎样保存在session中的方式。

Map的put()方法:
@Controller
@SessionAttributes(value = { "id" })
public class StudentController {
	
	@RequestMapping(value = "/student/login.do")
	public String login(Map<String, Object> map) {
		map.put("id", "29ec591c-ecb5-430e-9f86-1ef8a0b3d611");
		return "result";
	}
}

当@SessionAttributes注解的value属性值与Map集合的某个key相同时,该key对应的value就会被保存在session中。

......
@Controller
@SessionAttributes(types = { Integer.class })
public class StudentController {
	
	@RequestMapping(value = "/student/login.do")
	public String login(Map<String, Object> map) {
		map.put("age", 18);
		map.put("score", 98);
		return "result";
	}
}

Map集合中的数据类型与@SessionAttributes注解的types属性值一致时,该数据也会被保存在session中。

ModelAndView的addObject()方法:
......

@Controller
@SessionAttributes({"userInfo"})
public class UserInfoController {
	
	@RequestMapping("/userinfo/toView.do")
	public ModelAndView editView() {
		ModelAndView mv = new ModelAndView("to");
		UserInfo userInfo = new UserInfo();
		userInfo.setUserName("admin");
		userInfo.setPassword("123456");
		userInfo.setMobile("18838218972");
		userInfo.setAddress("湖南省升龙又一城");
		mv.addObject("userInfo", userInfo);
		return mv;
	}
}

当@SessionAttributes注解的value属性值与ModelAndView 的某个addObject方法的第一个参数相同时,该方法的第二个参数就会被保存在session中。

......

@Controller
@SessionAttributes(types = { UserInfo.class })
public class UserInfoController {
	
	@RequestMapping("/userinfo/toView.do")
	public ModelAndView editView() {
		ModelAndView mv = new ModelAndView("to");
		UserInfo userInfo = new UserInfo();
		userInfo.setUserName("admin");
		userInfo.setPassword("123456");
		userInfo.setMobile("18838218972");
		userInfo.setAddress("湖南省升龙又一城");
		mv.addObject("userInfo", userInfo);
		return mv;
	}
}

ModelAndView的addObject方法的第二个参数的数据类型与@SessionAttributes注解的types属性值一致时,该数据也会被保存在session中。

Model的addAttribute()方法:
......

@Controller
@SessionAttributes({"userInfo"})
public class UserInfoController {
	
	@RequestMapping("/userinfo/toView.do")
	public String editView(Model model) {
		UserInfo userInfo = new UserInfo();
		userInfo.setUserName("admin");
		userInfo.setPassword("123456");
		userInfo.setMobile("18838218972");
		userInfo.setAddress("湖南省升龙又一城");
		model.addAttribute("userInfo", userInfo);
		return "to";
	}
}

当@SessionAttributes注解的value属性值与Model的某个addAttribute方法的第一个参数相同时,该方法的第二个参数就会被保存在session中。

......

@Controller
@SessionAttributes(types = { UserInfo.class })
public class UserInfoController {
	
	@RequestMapping("/userinfo/toView.do")
	public String editView(Model model) {
		UserInfo userInfo = new UserInfo();
		userInfo.setUserName("admin");
		userInfo.setPassword("123456");
		userInfo.setMobile("18838218972");
		userInfo.setAddress("湖南省升龙又一城");
		model.addAttribute("userInfo", userInfo);
		return "to";
	}
}

Model的addAttribute方法的第二个参数的数据类型与@SessionAttributes注解的types属性值一致时,该数据也会被保存在session中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值