bkr*_*ish 4 spring-mvc hibernate-validator bean-validation
好.我有一个Spring MVC控制器方法如下:
public String getInformationByGID(@ModelAttribute("geoInfoParam") @Valid GeoInfoParam geoInfoParam, Model model ,BindingResult result)
Run Code Online (Sandbox Code Playgroud)
GeoInfoParam类定义有许多带@NotNull,@ Size带注释的验证的输入,我希望在提交表单时执行它(因为我有@Valid和ModelAttribute).但是发生了什么,当我点击提交时,页面显示400错误,并且没有在日志中显示任何其他信息.
bkr*_*ish 14
我调试了执行流程,发现org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.java(这是HandlerAdapter执行的一部分).当没有BindingResult后跟ModelAttribute时调用.handleBindException,并且此方法使用400代码设置响应.我学到的教训是如果你有一个用@Valid注释的表单(ModelAttribute),请确保它立即跟着BindingResult.所以我改变了我的控制器方法签名如下:
public String getInformationByGID(@ModelAttribute("geoInfoParam") @Valid GeoInfoParam geoInfoParam, BindingResult result, Model model)
Run Code Online (Sandbox Code Playgroud)
傻我.现在一切都很好.希望这有助于某人.
注意:我使用Spring MVC 3.2.8和Hibernate验证器4.2.0 final
| 归档时间: |
|
| 查看次数: |
1130 次 |
| 最近记录: |