spring mvc session注解用法
2015-12-31 10:56
609 查看
顾名思义SessionAttributes就是保存session的,SessionAttributes使用方法很简单,@SessionAttributes 允许指定多个属性。你可以通过字符串数组的方式指定多个属性,如 @SessionAttributes({“attr1”,”attr2”})。此外,@SessionAttributes 还可以通过属性类型指定要 session 化的 ModelMap 属性,如 @SessionAttributes(types = User.class),当然也可以指定多个类,如
@SessionAttributes(types = {User.class,Dept.class}),还可以联合使用属性名和属性类型指定:@SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”})。
以下例子使用:@SessionAttribute必须配合@ModelAttribute一起使用。
1. SessionAttributes 的作用
?
2. 通过使用 @SessionAttributes("user") 快速得到user
?
说明:
Spring允许我们有选择地指定 ModelMap中的哪些属性需要转存到 session中,以便下一个请求属对应的 ModelMap的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes注解来实现的。@SessionAttributes只能声明在类上,而不能声明在方法上。
例如:
@SessionAttributes("currUser") //将ModelMap中属性名为currUser的属性
@SessionAttributes({"attr1","attr2"})
@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types ={User.class,Dept.class},value={"attr1","attr2"})
实例:
----------------------------------------------------------------------------------------------------------------------
这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。
示例代码如下:
[java] view
plaincopy
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
@Controller
@RequestMapping("/user.do")
@SessionAttributes({"u","a"})
public class UserController {
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) {
System.out.println("HelloController.handleRequest()");
map.addAttribute("u","kobe");
return "index";
}
@RequestMapping(params="method=reg5")
//将属性u的值赋给形参uname
public String reg5(@ModelAttribute("u")String uname,ModelMap map) {
System.out.println("HelloController.handleRequest()");
System.out.println(uname);
return "index";
}
}
@SessionAttributes(types = {User.class,Dept.class}),还可以联合使用属性名和属性类型指定:@SessionAttributes(types = {User.class,Dept.class},value={“attr1”,”attr2”})。
以下例子使用:@SessionAttribute必须配合@ModelAttribute一起使用。
1. SessionAttributes 的作用
?
?
@SessionAttributes
说明:Spring允许我们有选择地指定 ModelMap中的哪些属性需要转存到 session中,以便下一个请求属对应的 ModelMap的属性列表中还能访问到这些属性。这一功能是通过类定义处标注 @SessionAttributes注解来实现的。@SessionAttributes只能声明在类上,而不能声明在方法上。
例如:
@SessionAttributes("currUser") //将ModelMap中属性名为currUser的属性
@SessionAttributes({"attr1","attr2"})
@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types ={User.class,Dept.class},value={"attr1","attr2"})
实例:
----------------------------------------------------------------------------------------------------------------------
2.11 @ModelAttribute
这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。示例代码如下:
[java] view
plaincopy
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
@Controller
@RequestMapping("/user.do")
@SessionAttributes({"u","a"})
public class UserController {
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) {
System.out.println("HelloController.handleRequest()");
map.addAttribute("u","kobe");
return "index";
}
@RequestMapping(params="method=reg5")
//将属性u的值赋给形参uname
public String reg5(@ModelAttribute("u")String uname,ModelMap map) {
System.out.println("HelloController.handleRequest()");
System.out.println(uname);
return "index";
}
}
1: @Controller
2: @SessionAttributes("user")
3: public class testSessionAttribute {
4:
5: private Logger logger = LoggerFactory.getLogger(testSessionAttribute.class);
6:
7: @RequestMapping("test")
8: public String test(ModelMap map){
9: UserBean userBean = new UserBean();
10: userBean.setId(1);
11: userBean.setUsername("EdwardLau");
12: userBean.setPassword("Hello World !");
13: map.put("user", userBean);
14: return "sessionattribute";
15: }
16:
17:
18: @RequestMapping("test1")
19: public String test(@ModelAttribute("user") UserBean userBean){
20: logger.debug("test1 方法调用----------");
21: logger.debug(userBean.getId()+":"+userBean.getPassword()+":"+userBean.getUsername());
22: logger.debug("test1 方法调用结束----------");
23: return "users";
24: }
25:
26: }
相关文章推荐
- spring MVC配置详解
- Spring SpEL对类属性的操作
- java深拷贝和浅拷贝
- java环境配置
- 如何在Eclipse下安装SVN插件——subclipse以及安装svn常出现的错误总结
- java forward 和 redirect 的区别
- eclipse不能启动Exception in AdtPlugin.start()
- Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式
- 扩展SpringMVC以支持绑定JSON格式的请求参数
- Java高级特性之枚举
- SpringMVC验证框架Validation特殊用法
- spring获取request对象的方式与条件
- maven_myeclipse_初始化
- java过滤html标签
- JAVA线程间协作:wait.notify.notifyAll
- JAVA线程间协作:wait.notify.notifyAll
- 中文字符串转为long型整数。(输入保证在long的范围内)java实现
- SpringMVC从Control中响应json数据
- SpringMVC之Controller传递JSON数据到页面
- 使用jenv管理多个java版本