per*_*ian 6 java data-binding spring spring-mvc
我正在寻找一种方法来访问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;
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时,将RegistrationData
填充get并将错误存储在BindingResult
.到现在为止还挺好.但是,我必须BindingResult
手动将其添加到ModelAndView
视图中以使其可见.
有没有办法自动添加BindingResult
到模型中?我已经尝试将方法签名调整为
public ModelAndView doRegisterAccept(
@Valid @ModelAttribute("registrationData") RegistrationData registrationData,
@ModelAttribute("bindingResult") BindingResult bindingResult
) {
Run Code Online (Sandbox Code Playgroud)
我希望 - 作为任何其他参数 - BindingResult
将被添加到键下的模型中bindingResult
但不幸的是,这不起作用.
那么,有什么想法吗?
我刚刚发现结果确实是使用密钥发布的
org.springframework.validation.BindingResult.<NAME_OF_MODEL_ATTRIBUTE>
Run Code Online (Sandbox Code Playgroud)
所以我想只是简单地用简单的名字添加它不会被春天的家伙鼓励?!
您必须在表单视图中添加“错误”标签,如下所述:http ://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/view.html#view-jsp-formtaglib-errorstag 。然后在你的控制器中,你只需进行一个测试:
if(bindingResult.hasErrors()) {
... display your form page again
(and "errors" tags will be populated by validation messages corresponding to each field) ...
}
else {
... here, you know that your RegistrationData is valid so you can treat it (save it I guess) ...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10010 次 |
最近记录: |