我有一个项目使用 spring 3 mvc 和 hibernate 验证器来验证表单对象。
我按照春天的文件
在我的控制器中,我可以获得绑定结果,其中bindingresult.hasErrors() == true
.
我ReloadableResourceBundleMessageSource
用来做错误信息绑定。
我的问题是:
是否可以在我的 jsp 网页中显示更灵活的错误消息?
例如,我想说“应用名称UserEnteredAppName无效。大小应在2到255之间”。
在我的 message.property 中,我定义:
Size.appNameForm.itemName=the app name {What Should I do in this brace?} is not valid. The size should be between {1} and {2}
{1} 和 {2} 可以内插到“2”和“255”。但是如何在插值消息中获取 UserEnteredAppName ?
下面是我的表单类和控制器类:
我的控制器类:
@RequestMapping(value="foo.htm")
public String handleAppNameFormSubmit(@Valid @ModelAttribute("appNameForm") AppNameForm form, BindingResult result){
}
我的表单类:
public class AppNameForm implements IForm{
@NotEmpty
@Size(min = 1, max = 255)
private String itemName;
....
}
我发现一些链接给了我一些提示:
例如:如何使用 Hibernate Validator 动态解析消息参数?
但是我正在使用jsr303实现的spring mvc和spring controll,我找不到使用自定义验证器的方法,扩展了hibernate的默认ValidatorImpl。
我在想的解决方案是,我可以有自定义验证器,它将拒绝 UserEnteredAppName 进入 bindingResult。可能吗?或者我应该找到另一种方式?
谢谢安德鲁