相关疑难解决方法(0)

绑定前的JSR-303类型检查

模型....

@Digits(integer=5, fraction=0, message="The value must be numeric and less than five digits")
private int value;
Run Code Online (Sandbox Code Playgroud)

豆文件....

<mvc:annotation-driven />
Run Code Online (Sandbox Code Playgroud)

控制器....

@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);
     }
Run Code Online (Sandbox Code Playgroud)

如何将"价值"限制在数字范围内?如果我输入的不是数字,我会收到此错误:

无法将类型为java.lang.String的属性值转换为属性值所需的java.lang.Integer类型; 嵌套异常是org.springframework.core.convert.ConversionFailedException:无法将类型java.lang.String中的值"A"转换为java.lang.Integer类型; 嵌套异常是java.lang.IllegalArgumentException:无法解析A.

我看过一些提到initBinding的帖子,但我不确定如何使用它,或者它是否会帮助我.这必须在以前解决.有没有办法确保它在绑定之前是一个数字?

或者,如果有人可以发布正确的messages.properties条目来覆盖此错误,那也可能对我有用.

I tried @Pattern but that doesn't work on ints

validation spring spring-mvc bean-validation

12
推荐指数
1
解决办法
7590
查看次数

标签 统计

bean-validation ×1

spring ×1

spring-mvc ×1

validation ×1