我在Spring中编写了一个Web应用程序。有一个带有一个Integer字段的HTML表单。我为typeMismatch.java.lang.Integer
添加了自定义消息并且处理得当但有一个问题。 Spring不区分字符串值和"溢出"整数。换句话说 - 用户是否输入this is a string
或1000000000000000000000000000
没有区别。两者都由Spring作为typeMismatch
处理。我希望两种情况都有两个单独的消息。
我想到了两个解决方案:
java.lang.Integer
替换为java.math.BigInteger
表单对象 - 然后typeMismatch
错误仅适用于this
is a string
,我将处理1000000000000000000000000000
验证Integer
注册我自己的属性编辑器,但我不确定是否
可以使用一个属性编辑器处理两个不同的错误你对这个问题有什么更好的概念吗?
答案 0 :(得分:0)
您可以将hibernate验证框架/ Java EE6 bean验证集成到Spring项目中吗?
然后,您可以使用注释限制整数字段允许的可接受范围,例如:
@Min(1)
@Max(10000)
private Integer myInteger;
这是一篇易于理解的文章: