在Spring中绑定期间溢出数字的自定义消息

时间:2015-03-02 08:51:34

标签: java spring spring-mvc type-mismatch

我在Spring中编写了一个Web应用程序。有一个带有一个Integer字段的HTML表单。我为typeMismatch.java.lang.Integer添加了自定义消息并且处理得当但有一个问题。 Spring不区分字符串值和"溢出"整数。换句话说 - 用户是否输入this is a string1000000000000000000000000000没有区别。两者都由Spring作为typeMismatch处理。我希望两种情况都有两个单独的消息。

我想到了两个解决方案:

  1. java.lang.Integer替换为java.math.BigInteger 表单对象 - 然后typeMismatch错误仅适用于this is a string,我将处理1000000000000000000000000000 验证
  2. Integer注册我自己的属性编辑器,但我不确定是否 可以使用一个属性编辑器处理两个不同的错误
  3. 你对这个问题有什么更好的概念吗?

1 个答案:

答案 0 :(得分:0)

您可以将hibernate验证框架/ Java EE6 bean验证集成到Spring项目中吗?

然后,您可以使用注释限制整数字段允许的可接受范围,例如:

@Min(1)
@Max(10000)
private Integer myInteger;

这是一篇易于理解的文章:

http://www.c-sharpcorner.com/UploadFile/5fd9bd/javax-annotation-and-hibernate-validator-a-pragmatic-appro/