首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从原理层面掌握@ModelAttribute的使用(核心原理篇)【享学Spring MVC】

比如我们在@RestController标注的Controller控制器组件上用@RequestMapping、@ExceptionHandler等注解来表示请求映射、异常处理等等。...在众多的注解使用中,Spring MVC中有一个非常强大但几乎被忽视的一员:@ModelAttribute。...虽然它不是必须,但是它是个很好的辅助~ @ModelAttribute官方解释 首先看看Spring官方的JavaDoc对它怎么说:它将方法参数/方法返回值绑定到web view的Model里面。...Model中获取,若没有获取到,就使用默认构造函数(可能是有无参,也可能是有参)创建,然后会把ServletRequest请求的数据绑定上来, 然后进行@Valid校验(若添加有校验注解的话),最后会把属性添加到...如下示例,它会正常打印person的值,而不是null(因为Model内有person了~) 请求链接是:/testModelAttr?

1.5K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SpringMVC常用注解标签详解

    ,而不是直接去操作属性。...这些参数Spring 在调用处理器方法的时候会自动给它们赋值,所以当在处理器方法中需要使用到这些对象的时候,可以直接在方法上给定一个方法参数的申明,然后在方法体里面直接用就可以了。...(7 )除以上几种情况之外的其他任何返回类型都会被当做模型中的一个属性来处理,而返回的视图还是由RequestToViewNameTranslator 来决定,添加到模型中的属性名称可以在该方法上用@ModelAttribute...执行结果如下所示: Hello world,Hello user210 由执行结果我们可以看出来,此时 session 中没有包含任何属性,也就是说上面的那些对象都是存放在模型属性中,而不是存放在 session...对象,若没有则查询@ModelAttribute方法层面上是否绑定了Pet对象,若没有则将URI template中的值按对应的名称绑定到Pet对象的各属性上。

    1K20

    springmvc常用注解标签详解

    ,而不是直接去操作属性。...这些参数Spring 在调用处理器方法的时候会自动给它们赋值,所以当在处理器方法中需要使用到这些对象的时候,可以直接在方法上给定一个方法参数的申明,然后在方法体里面直接用就可以了。...(7 )除以上几种情况之外的其他任何返回类型都会被当做模型中的一个属性来处理,而返回的视图还是由RequestToViewNameTranslator 来决定,添加到模型中的属性名称可以在该方法上用@ModelAttribute...执行结果如下所示:  Hello world,Hello user210        由执行结果我们可以看出来,此时 session 中没有包含任何属性,也就是说上面的那些对象都是存放在模型属性中,而不是存放在...对象,若没有则查询@ModelAttribute方法层面上是否绑定了Pet对象,若没有则将URI template中的值按对应的名称绑定到Pet对象的各属性上。

    45220

    springmvc 注解总结

    当请求路径的请求参数或提交的表单与BaseMember的属性名匹配时,将自动将其值绑定到baseMember对象中,非常的便利!这可能是我们使用@ModelAttribute最主要的原因之一。...,而它的一部分功能与@RequestParam注解是一致的,只不过@RequestParam用于绑定单个参数值,而@ModelAttribute注解可以绑定所有名称匹配的,此外它自动将绑定后的数据添加到模型中...如果希望在多个请求中共享ModelMap中的属性,必须将其属性转存到session 中,这样 ModelMap 的属性才可以被跨请求访问。...2)处添加了一个 ModelMap 属性,其属性名为 currUser,而(1)处通过 @SessionAttributes 注解将 ModelMap 中名为 currUser 的属性放置到 Session...绑定 @SessionAttributes 是用来在 controller 内部共享 model 属性的。

    44510

    springmvc常用注解总结

    这些参数Spring 在调用处理器方法的时候会自动给它们赋值,所以当在处理器方法中需要使用到这些对象的时候,可以直接在方法上给定一个方法参数的申明,然后在方法体里面直接用就可以了。...(7 )除以上几种情况之外的其他任何返回类型都会被当做模型中的一个属性来处理,而返回的视图还是由RequestToViewNameTranslator 来决定,添加到模型中的属性名称可以在该方法上用@ModelAttribute...@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。...如果@ModelAttribute()未指定key,则key默认为方法返回类型名称的首字母小写形式 @ModelAttribute作用于参数上:从model中get值并绑定到参数上。...通过名称对应,把model对象中相应的属性值绑定到注解的参数上,如果model对象中没有此属性,则把request中按名称对应的方式把值绑定到参数上 @SessionAttributes:作用于Controller

    16830

    springmvc常用注解总结(面试经常问)

    这些参数Spring 在调用处理器方法的时候会自动给它们赋值,所以当在处理器方法中需要使用到这些对象的时候,可以直接在方法上给定一个方法参数的申明,然后在方法体里面直接用就可以了。...(7 )除以上几种情况之外的其他任何返回类型都会被当做模型中的一个属性来处理,而返回的视图还是由RequestToViewNameTranslator 来决定,添加到模型中的属性名称可以在该方法上用@ModelAttribute...@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。...如果@ModelAttribute()未指定key,则key默认为方法返回类型名称的首字母小写形式 @ModelAttribute作用于参数上:从model中get值并绑定到参数上。...通过名称对应,把model对象中相应的属性值绑定到注解的参数上,如果model对象中没有此属性,则把request中按名称对应的方式把值绑定到参数上 @SessionAttributes:作用于Controller

    25710

    Spring 最常用的 7 大类注解

    而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。 而spring的注解那么多,可能做java很多年,都用不上。...@Value可以指定属性取值的表达式,支持通过#{}使用SpringEL来取值,也支持使用${}来将属性来源中(Properties文件、本地环境变量、系统属性等)的值注入到bean的属性中。...在controller上使用此注解可以自定义请求参数的绑定。 @MatrixVariable 此注解使用在请求handler方法的参数上,Spring可以注入matrix url中相关的值。...这里的矩阵变量可以出现在url中的任何地方,变量之间用;分隔。...@SessionAttribute 此注解用于方法的参数上,用于将session中的属性绑定到参数。

    22431

    Spring 最常用的 7 大类注解,一文整理!这些注解你都有用过吗?

    而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架。 而spring的的注解那么多,可能做java很多年,都用不上。...在controller上使用此注解可以自定义请求参数的绑定。 @MatrixVariable 此注解使用在请求handler方法的参数上,Spring可以注入matrix url中相关的值。...这里的矩阵变量可以出现在url中的任何地方,变量之间用;分隔。...@SessionAttribute 此注解用于方法的参数上,用于将session中的属性绑定到参数。...如下: @ModelAttribute("user") public PUser getUser() {} // controller和上面的代码在同一controller中 @Controller

    97050

    接口参数 Model 中的数据放在 session 中还是 request 中?

    在来说返回参数,Model 中的属性,你最终都可以在前端视图中获取到,这个没啥好说的。...@SessionAttributes 的作用类似于 Session 的 Attribute 属性,但不完全一样,一般来说 @SessionAttributes 设置的参数只用于临时的参数传递,而不是长期的保存...Model,而是使用 @SessionAttribute 注解,直接将 session 中的属性绑定到参数上。...获取 @ModelAttribute 注解,并提取出它的 name 属性值,然后查看 ModelAndViewContainer 容器中是否已经包含了该属性,如果已经包含了,并且在 @ModelAttribute...注解中设置了不绑定,则将该属性添加到 ModelAndViewContainer 容器中的禁止绑定上面去。

    1.8K31
    领券