@ModelAttribute依赖项检查无法正常工作

时间:2016-11-28 09:51:42

标签: java spring spring-mvc annotations

控制器中的@ModelAttribute方法是

@ModelAttribute("command")
public A getA() {
...
}

@ModelAttribute
public void prepareData(@ModelAttribute("command") A a) {
...
}

我们正在使用Spring 4.2.6版本和As per Spring forum此问题已在4.1.0版本的spring中得到解决。当我部署项目时有时getA()在prepareData之前执行,有时prepareData()在getA()之前执行,但根据jira for above issue,它已在从4.1.0开始的所有spring版本中修复。你能否建议我在这里遗漏任何东西。

1 个答案:

答案 0 :(得分:2)

您应该只使用@ModelAttribute标记'preparedData'而不是两者。标记这意味着它将在调用任何请求或控制器方法之前执行。

因此,如果'getA'是您的控制器方法,并且您希望在调用之前预处理'A'(在getA处),那么您的方法应该是这样的

public A getA(@ModelAttribute("command") A a) { ... }

@ModelAttribute("command")
public A prepareData() { 
  return new A();//or some other way you want to populate values of A
}