【问题标题】:Spring MVC @ModelAttribute as a method parameter annotationSpring MVC @ModelAttribute 作为方法参数注解
【发布时间】:2021-04-12 20:57:31
【问题描述】:

我在stackoverflow上碰到一个answer关于spring MVC上@ModelAttribute的用法,得知它实际上不需要添加到方法的参数中。

我从我们的旧项目中寻找了一些控制器,删除了注释,令人惊讶的是,没有@ModelAttribute,应用程序仍然可以完美运行。请看下面的例子:

@RequestMapping(method = RequestMethod.POST, value = "/audit/filter")
public String getAuditLogsWithFilter(Model model, AuditLogFilter auditLogFilter, BindingResult bindingResult)

我已经阅读了一些关于它的文章,但我无法理解为什么@ModelAttribute 用于某些方法参数,特别是对于弹簧控制器。

谁能提供一个简单的解释来解释为什么会这样?或者有人可以列举一些我应该将@ModelAttribute 注释添加到我的参数对象的情况吗?

【问题讨论】:

    标签: java spring spring-boot spring-mvc thymeleaf


    【解决方案1】:

    official document 中所述,它是可选的:

    请注意,使用@ModelAttribute 是可选的(例如,设置其属性)。默认情况下,任何不是简单值类型(由 BeanUtils#isSimpleProperty 确定)且未被任何其他参数解析器解析的参数都被视为使用 @ModelAttribute 注释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2016-09-25
      • 1970-01-01
      • 2012-12-03
      相关资源
      最近更新 更多