`
caicai1230231
  • 浏览: 23673 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

spring mvc中的ModelAttribute与SessionAttributes

 
阅读更多
      spring mvc中,变量有一个作用域的概念,你可以很方便使用注解,就能实现变量的的设置,在各自的作用域内优雅的使用该变量。

ModelAttribute

假如有这样一段代码:

myRequestObject这个引用,经过spring的处理,会自动把addStuffToRequestScope这个方法的返回值MyCommandBean作为值保存下来。实际上spring的model缓存这个值,其实这个值是在request的getAttribute里面。当你调用controller里面某个@requestmapping注解的方法,都能取到这个model里面的值。

这个图能说明一些问题:

 

可以看出,在controller渲染页面之前,spring已经把ModelAttribute里面的值植入进去了。其实它的作用域就是当前请求。

SessionAttributes

在原来的代码基础之上,再添加一个注解,就表示这个变量会跟随用户的会话周期。只要用户不退出或者SESSION过期,这个值就一直可以保留。当然,在当前的 request周期之内,调用getAttribute方法同样也可以得到。

注意session与model的value名称要一样。

使用场景:

modelattribute:常量定义,比如key,value的映射。像下拉框,多选框等等

sessionattribute:跟用户会话相关的常量,如用户基本信息等

参考链接:understanding-spring-mvc-model-and-session-attributes

分享到:
评论

相关推荐

    [Spring MVC] - ModelAttribute使用.docx

    当我们在一个控制器方法的参数上使用`@ModelAttribute`时,Spring MVC会尝试从请求中获取与注解参数名相匹配的数据,例如表单提交的数据或URL路径变量。然后,这些数据会被用来初始化或者更新一个模型实体对象。例如...

    Spring MVC框架简介和使用

    - **与 Spring 完美融合**:作为 Spring 框架的一部分,Spring MVC 可以无缝集成 Spring 的其他特性,如依赖注入(IoC)、面向切面编程(AOP)等。 - **约定优于配置**:Spring MVC 遵循约定优于配置的原则,减少了...

    spring mvc项目后端源码

    `@ModelAttribute` 注解用于将模型对象与请求参数关联,`@SessionAttributes` 可以将模型数据存储在 HTTP Session 中跨多个请求保留。 5. **View Resolver**:视图解析器负责根据逻辑视图名查找实际的视图,如 JSP...

    基于注解驱动的 Spring MVC

    2. **@ModelAttribute** 注解:虽然在示例中没有使用,但 @ModelAttribute 是 Spring MVC 中处理模型数据的重要注解。它通常用于方法参数前,用于将请求参数绑定到模型对象,或者从模型中获取已存在的对象。 3. **@...

    Spring MVC 3.0实战指南.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及解析器 7...

    一头扎进 springmvc 视频教程 java1234出品

    在实际开发中,Spring MVC与Spring Boot结合使用时,可以极大地简化配置,提供开箱即用的Web应用体验。Spring Boot自动配置了大部分Spring MVC的组件,并且集成了许多流行的第三方库,如Thymeleaf、Jackson等。 本...

    spring mvc注释文档

    在Spring MVC中,可以非常方便地将URL中的参数与处理方法的参数进行绑定。例如,假设URL为`/search?name=John&age=30`,那么可以在处理方法中直接声明形如`@RequestParam String name, @RequestParam int age`这样的...

    跟我学Spring MVC

    #### 一、Spring MVC概述与特点 **Spring MVC**是Spring框架的一个模块,它提供了一种清晰的模型-视图-控制器(MVC)设计模式实现,用于快速构建可维护的Web应用程序。Spring MVC的核心优势在于其灵活性和可扩展性。 ...

    Spring MVC常用注解

    在 Spring MVC 中,注解扮演着非常重要的角色,它们使得代码更加简洁、易读,并减少了 XML 配置。下面将详细讲解 Spring MVC 中常用的注解。 1. `@Controller`:这个注解标记一个类作为 Spring MVC 的控制器。控制...

    Spring MVC实例

    Spring MVC 可以与其他 Spring 组件和第三方库集成,如 Spring Security(安全控制)、Spring Data(数据访问)、Hibernate(ORM)等,实现更复杂的功能。 ### 6. Spring Boot 与 Spring MVC Spring Boot 是基于 ...

    Spring 2.5 基于注解驱动的 Spring MVC.docx

    接下来,我们深入探讨一下 Spring MVC 中其他关键的注解: 1. **@Autowired**:这是 Spring 自动装配依赖注入的注解,用于将依赖的服务(如 BbtForumService)自动注入到 Controller 类的成员变量中。这样就避免了...

    Spring3MVC注解教程.ppt

    《Spring MVC 3.0实战指南》,参考《Spring 3.x企业应用开发实战》。 内容简介: 1、Spring MVC框架简介 2、HTTP请求地址映射 3、HTTP请求数据的绑定 4、数据转换、格式化、校验 5、数据模型控制 6、视图及...

    spring mvc

    Spring MVC 是 Spring 框架的一部分,主要负责处理 Web 应用中的请求和响应。在 Spring 2.5 版本之后,Spring MVC 引入了注解驱动的功能,极大地简化了控制器(Controller)的配置和使用。本文将深入探讨 Spring MVC...

    Spring MVC 学习笔记 七 controller中其他可用的annotation

    10. **@ModelAttribute**: 在方法参数中使用此注解,可以将模型属性与请求参数关联,或者用于从模型中读取或写入属性。常用于表单绑定和数据验证。 11. **@SessionAttributes**: 用于将模型属性存储在HttpSession中...

    Spring MVC的常用注解

    在Spring MVC中,注解的使用极大地简化了配置,使得开发更加高效和简洁。下面我们将深入探讨Spring MVC中的一些关键注解及其用法。 1. `@Controller`:这个注解用于标记一个类作为Spring MVC的控制器。控制器类负责...

    spring—MVC的注解实例

    除了上述的注解,Spring MVC还有许多其他注解,如`@SessionAttributes`用于在session中存储模型数据,`@ExceptionHandler`用于全局异常处理,`@InitBinder`用于初始化数据绑定行为,等等。这些注解共同构建了一个...

    spring的mvc,注解驱动

    以上只是Spring MVC注解驱动开发的一部分知识点,实际应用中还有许多其他注解和配置,如`@RestController`、`@SessionAttributes`、`@Async`等,以及AOP(面向切面编程)、Spring Data JPA等集成技术。学习和熟练...

    一步一步开发Spring Framework MVC应用程序

    在开发Spring Framework MVC应用程序的过程中,我们首先需要理解MVC(Model-View-Controller)设计模式。MVC是一种软件设计模式,用于将业务逻辑、数据模型和用户界面分离,以提高代码的可维护性和复用性。 Spring ...

Global site tag (gtag.js) - Google Analytics