ModelAttribute&SessionAttributes
Posted yuanfei1110111
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ModelAttribute&SessionAttributes相关的知识,希望对你有一定的参考价值。
SpringMVC 支持使用 @ModelAttribute 和 @SessionAttributes 在不同的模型(model)和控制器之间共享数据。 @ModelAttribute 主要有两种使用方式,一种是标注在方法上,一种是标注在 Controller 方法参数上。
当 @ModelAttribute 标记在方法上的时候,该方法将在处理器方法执行之前执行,然后把返回的对象存放在 session 或模型属性中,属性名称可以使用 @ModelAttribute(“attributeName”) 在标记方法的时候指定,若未指定,则使用返回类型的类名称(首字母小写)作为属性名称。
若使用了@SessionAttributes,则属性值会存放到session中,不过在第一次访问时,@SessionAttributes会定义需要存放到session中的属性,等到第二次访问时,属性值就可以从session中获取了。
当 @ModelAttribute 标记在处理器方法参数上的时候,表示该参数的值将从模型或者 Session 中取对应名称的属性值,该名称可以通过 @ModelAttribute(“attributeName”) 来指定,若未指定,则使用参数类型的类名称(首字母小写)作为属性名称。
相同的attribute值,session优于model
以上是关于ModelAttribute&SessionAttributes的主要内容,如果未能解决你的问题,请参考以下文章