`
yjflfliulei
  • 浏览: 78356 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring MVC 3.1 注解:@SessionAttibute

阅读更多

@SessionAttibute:看名字就知道,将值存放于session范围内。详细用法如下:

1.第一种:

 

@Controller
@RequestMapping("/user")
@SessionAttributes("user")
public class UserController extends BaseController<User, Long> {

   @RequestMapping("/test/{id}/{username}")
    public User testSessionAttribute(User u){

         return u;
    }
}

 直接在controller上加注@SessionAttributes,参数为 方法返回值的XX.class.getSimpleName(),一般来说就是返回的bean的首字母小写,如上代码,@SessionAttributes的参数即为"user". 这样便把user存放于session中了!但是:

注意:这种方法会将controller范围内的所有返回值为User的方法返回对象都放入session!

         比如:有两个映射方法返回值都是User bean,那么,只要执行这两个方法,@SessionAttributes("user")注解就会将返回的User对象存于session中! 这种方式是不可取的,缺乏精确!慎用!当然,某些情况下可以这么用。

 

2.第二种:

 

@Controller
@RequestMapping("/user")
@SessionAttributes("a")
public class UserController extends BaseController<User, Long> {
	@RequestMapping("/test")
	@ModelAttribute("a")
	public User  testModelAttribute(User u){
		u.setUsername("1111");
		return u;
	}
}

  这种方式是和@ModelAttribute注解联用,如上示例代码,方法上使用@ModelAttribute("a"),controller上使用@SessionAttributes("a"),(当然,这里的“a”是随便取得,建议取有意义的名称,这里只做测试使用

此时,访问该方法映射路径就会将 返回的User 以名称“a”存放于 session中,相当于

session.setAttribute("a",(User)*);, 同时,由于返回的是model,所以request中亦是有值的,在"test.jsp"中使用${requestScope.user}也可以访问到。

 

3.第三种:

@SessionAttributes(types={User.class})
public class UserController extends BaseController<User, Long> {
 

 和第一种一样,只不过指明type属性,同样以class.simpleName存储与session中

 

4.第四种:

 

@Controller
@RequestMapping("/user")
@SessionAttributes(types={User.class},value="user")
public class UserController extends BaseController<User, Long> {
	
	@RequestMapping("/test")
	public String  testModelAttribute(ModelMap  model){
		
		model.put("user", new User());
		return "test";
	}
}

 这里为大家使用一下modelMap ,其实上面的列子也一样,只是把每种方式都演示一下。@SessionAttributes(types={User.class},value="user")  ,

type:指定存放入session中的对象类型。

value:返回值的名称,采用ModelMap的话便是key的名字

 

这种方法像是上面的结合体吧,比较精确,一般的话个人建议使用第二种,第四种.

@SessionAttributes 基本就那么多内容吧。

 

分享到:
评论

相关推荐

    spring MVC 3.1 spring security 注解实现安全机制

    spring MVC 3.1+spring security3.1+mybaits+ 注解 实现安全机制。jar包没有上传。自己补充

    Spring mvc全注解框架

    此框架结合了springmvc,hibernate,mybatis3.1,log4j2. 其中mybatis和hibernate只要在spring的配置文件注释一下就可以选择其中一个了。 事务处理,日志设置。所有东西都设置好了。完全满足中小项目直接开发

    spring mvc3.2.7+servlet3.1(jetty)+maven3+eclipse

    spring mvc3.2.7(基于注解配置)+servlet3.1(jetty)+maven3+eclipse

    Spring_MVC_051:Spring MVC 学习总结(五)——校验与文件上传

    Spring MVC 学习总结(五)——校验与文件上传 目录 2.2.7、范围 2.2.8、其它注解 2.3、注解控制器参数 1.4、在UI中添加错误标签 1.5、测试运行 三、使用jQuery扩展插件Validate实现前端校验 3.1、jQuery扩展插件...

    spring杂谈 作者zhang KaiTao

    1. spring杂谈[原创] 1.1 Spring事务处理时自我调用的解决方案及一些实现方式的风险 ...1.32 Spring3 Web MVC下的数据类型转换(第一篇)——《跟我学Spring3 Web MVC》抢先看 1.33 Spring 注入集合类型

    spring.doc

    3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认无参数) 14 3.3.2使用静态工厂方法实例化(简单工厂模式) 14 3.3.3...

    跟我学SpringMVC 教程

    第六章 注解式控制器详解 Spring MVC 3.1新特性 生产者、消费者请求限定 第六章 注解式控制器详解 SpringMVC强大的数据绑定(1) 第六章 注解式控制器详解 SpringMVC强大的数据绑定(2) 第七章 注解式控制器的...

    跟我学SpringMVC

    第六章 注解式控制器详解 Spring MVC 3.1新特性 生产者、消费者请求限定 第六章 注解式控制器详解 SpringMVC强大的数据绑定(1) 第六章 注解式控制器详解 SpringMVC强大的数据绑定(2) 第七章 注解式控制器的数据...

    SpringMVC教程

    也包含新版Spring3.0,3.1 基于注解的MVC配置方法 总之绝对值得下载 学习 并以后查阅 目录 第一章 Web MVC简介.pdf 第二章 Spring MVC入门 .pdf 第三章 DispatcherServlet详解.pdf 第四章 Controller接口控制器详解...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...

    spring3.1中文参考文档

    spring3.1中文参考文档,南磊翻译,现在有4章,目录如下: 第一部分 Spring framework概述.......................................................................................................................

    SpringMVC+Hibernate全注解整合

    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"&gt; &lt;!-- 对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 mvc:annotation-driven --&gt; &lt;mvc:annotation-driven/&gt; &lt;!...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 Spring MVC 基本配置 87 4.4.1 静态资源映射 88 4.4.2 拦截器配置 89 4.4.3 @ControllerAdvice 91 4.4.4 其他配置 94 4.5 Spring MVC 的高级配置 98 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 Spring MVC 基本配置 87 4.4.1 静态资源映射 88 4.4.2 拦截器配置 89 4.4.3 @ControllerAdvice 91 4.4.4 其他配置 94 4.5 Spring MVC 的高级配置 98 ...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    4.3 Spring MVC 的常用注解 82 4.3.1 点睛 82 4.3.2 示例 83 4.4 Spring MVC 基本配置 87 4.4.1 静态资源映射 88 4.4.2 拦截器配置 89 4.4.3 @ControllerAdvice 91 4.4.4 其他配置 94 4.5 Spring MVC 的高级配置 98 ...

    Spring_Framework_ API_5.0.5 (CHM格式)

    Spring Web Reactive 在 spring-webmvc 模块中现有的(而且很流行)Spring Web MVC旁边的新的 spring-web-reactive 模块中。 请注意,在 Spring5 中,传统的 SpringMVC 支持 Servlet3.1 上运行,或者支持 JavaEE7 的...

    Spring Boot实战 ,丁雪丰 (译者) .pdf

    注解),以及面向注解的Spring MVC编程模型。不用再去显式地声明应用程序组件了,也 不再需要去继承某个基础的控制器类了。这玩意儿不能更好了。  到了Spring 3.0,我们有了一套基于Java的全新配置,它能够取代XML...

    Spring中文帮助文档

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

Global site tag (gtag.js) - Google Analytics