您的位置:首页 > 编程语言 > Java开发

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

?


@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:  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: