【发布时间】:2011-10-05 23:27:26
【问题描述】:
我正在寻找一种从视图中访问BindingResult 的方法(在我的例子中是一个 JSP 页面)。
我有以下控制器方法:
@RequestMapping(value="/register/accept.html",method=RequestMethod.POST)
public ModelAndView doRegisterAccept(
@Valid @ModelAttribute("registrationData") RegistrationData registrationData,
BindingResult bindingResult
) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("bindingResultXXX", bindingResult);
modelAndView.setViewName("users/registration/register");
return modelAndView;
}
执行此操作时,RegistrationData 得到填充,错误存储在BindingResult 中。到目前为止,一切都很好。但是,我必须手动将BindingResult 添加到ModelAndView 中才能在视图中显示。
有没有办法自动将BindingResult 添加到模型中?我已经尝试将方法签名调整为
public ModelAndView doRegisterAccept(
@Valid @ModelAttribute("registrationData") RegistrationData registrationData,
@ModelAttribute("bindingResult") BindingResult bindingResult
) {
在我希望的地方 - 就像任何其他参数一样 - BindingResult 将被添加到模型中,在 bindingResult 键下,但不幸的是,这不起作用。
那么,有什么想法吗?
加法
我刚刚发现结果确实是使用密钥发布的
org.springframework.validation.BindingResult.<NAME_OF_MODEL_ATTRIBUTE>
所以我想 Spring 家伙不鼓励在普通名称下添加它?!
【问题讨论】:
-
有趣的问题,它应该以某种方式呈现在视图中,例如在显示验证错误时
标签: java spring data-binding spring-mvc