模型....
@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits") private int value;
beans file....
<mvc:annotation-driven />
controller....
@RequestMapping(value = "/admin/save.htm", method = { RequestMethod.POST }) public ModelAndView saveSection(@Valid @ModelAttribute Section section, BindingResult result) { if(result.hasErrors()) { return new ModelAndView("admin/editSection", "section", section); }
如何将“值”限制为仅数字?如果我输入的不是数字,则会出现此错误:
Failed to convert property value of type java.lang.String to required type java.lang.Integer for property value; nested exception is org.springframework.core.convert.ConversionFailedException: Unable to convert value “A” from type java.lang.String to type java.lang.Integer; nested exception is java.lang.IllegalArgumentException: Unable to parse A
我看到一些帖子提到了initBinding,但是我不确定如何使用它,或者它是否对我有帮助。这必须已经解决。有什么方法可以确保它在绑定之前是一个数字?
或者,如果有人可以发布正确的messages.properties条目来覆盖此错误,那么这对我也可以工作。
我尝试了@Pattern但在int上不起作用
如前所述,你需要在中提供一条用户友好的消息messages.properties。你可以使用以下消息代码之一(具有不同的选择性级别):
messages.properties
另外,当你不知道消息代码时,只需打印BindingResult-即可toString()返回绑定错误的完整说明。
BindingResult
toString()