我升级到 Spring 3.1.1.RELEASE,现在我在以下方法上遇到了异常:
@RequestMapping(method = RequestMethod.POST, params = "_finish")
public ModelAndView doPostFinish(@PathVariable("runEnvironmentName") RunEnvironment pEnvironment, @ModelAttribute("command") JobSpecNewCommand pCommand, BindingResult pErrors)
{
...
}
引发以下异常:
java.lang.IllegalStateException:需要一个 Errors/BindingResult 参数 紧跟在控制器方法中的模型属性参数之后 签名: java.lang.IllegalStateException:错误/BindingResult 参数应紧跟在控制器方法签名中的模型属性参数之后:public org.springframework.web.servlet.ModelAndView de.wwag.infra.oocsd.projectAdmin.fe.natures .hudson.jobspecs.RunEnvJobSpecNewController.doPostFinish(de.wwag.infra.oocsd.projectAdmin.common.domain.RunEnvironment,de.wwag.infra.oocsd.projectAdmin.fe.natures.hudson.jobspecs.JobSpecNewCommand,org.springframework.validation .BindingResult) 在 org.springframework.web.method.annotation.ErrorsMethodArgumentResolver.resolveArgument(ErrorsMethodArgumentResolver.java:62) ...
如您所见,方法签名符合预期。BindingResult 参数在模型属性之后声明。
在同一个类中,声明了以下方法:
@ModelAttribute("otherJobSpecs")
public List<JobReference> modelOtherJobSpecs(@PathVariable("runEnvironmentName") RunEnvironment pEnvironment, @ModelAttribute("command") JobSpecNewCommand pCommand)
{
...
}
当我从类中删除该方法时,一切都按预期工作。
有任何想法吗?