我遇到了Spring MVC的3.1.0.M2一個非常奇特的行爲突然蹦出來:Spring MVC的:BindingResult前沒有模型涉嫌聲明的屬性
@Controller
@RequestMapping("/admin/participants/{participantId}")
public class ParticipantEditController extends ParticipantControllerSupport {
@ModelAttribute("participant")
public Participant getParticipant(
@PathVariable("participantId") final long participantId) {
// ...
}
@RequestMapping(value = "/{tab}/edit", method = RequestMethod.PUT)
public ModelAndView save(
@ModelAttribute("participant") final Participant participant,
final BindingResult errors) {
// ...
}
}
當我提交我的形式我得到的以下情況除外:
java.lang.IllegalStateException: Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature!
at org.springframework.web.method.annotation.support.ErrorsMethodArgumentResolver.resolveArgument(ErrorsMethodArgumentResolver.java:60)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:65)
...
什麼是困擾我的是,我BindingResult
確實緊跟在方法簽名的模型屬性。
我試過了,沒有使用@Valid
註解,並且或多或少的其他參數都無濟於事。
有誰知道我在做什麼錯?任何幫助不勝感激。
這可能是在ErrorsMethodArgumentResolver(或相關型號類)的一個錯誤。考慮將其報告給春季團隊。 3.1.0.M2仍然是一個開發版本;獲得3.0.6(最新的ga版本)可能是一個好主意,並查看是否可以重現該錯誤。 – DwB
我已將此主題提交到Spring社區論壇:http://forum.springsource.org/showthread.php?115054-MVC-3.1.0.M2-BindingResult-allegedly-declared-without-preceding-model-attribute –