a、该注解只能应用在类上;
b、该注解用于将Map、ModelMap、Model或ModelAndView中的数据暂存到HttpSession中以使其可以在多个请求之间共用数据
c、@SessionAttributes除了可以通过value或names注解属性指定哪些属性放到Session中以外,还可以通过type注解属性进行指定
userinfocontroller.java
package com.jd.userinfo;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;
import com.jd.vo.UserInfo;
@Controller
@SessionAttributes({"userInfo"})
public class UserInfoController {
@RequestMapping("/userinfo/toView.do")
public ModelAndView editView() {
ModelAndView mv = new ModelAndView("ok");
UserInfo userInfo = new UserInfo();
userInfo.setUsername("admin");
userInfo.setPassword("123456");
userInfo.setMobile("18838218972");
userInfo.setAddress("河南省郑州市高新区升龙又一城");
mv.addObject("userInfo", userInfo);
return mv;
}
}
将这里面的值存到
@SessionAttributes({"userInfo"}) 中
使其可以在多个请求之间共用数据。
显示页面:(jsp页面通过EL表达式即可获取userInfo中的的值)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
userName:${userInfo.username }
password:${userInfo.password }
mobile:${userInfo.mobile }
address:${userInfo.address }
</body>
</html>
输出结果: