3

我在 int 属性中使用验证:

@Digits(integer=6,fraction=0)
private Integer idOrder;

但我希望这个属性正好有 6 位数字。

我怎样才能做到这一点?(使用JSP+Spring+Hibernate)

4

2 回答 2

7

由于您需要 6 位数字,我认为您应该对属性使用字符串。如果在某些情况下你需要它作为 int,你做一个

 public int getIdOrder(){ return Integer.parseInt(idOrder);}

在字符串上,您可以使用模式验证。它会是这样的:

@Pattern(regexp="\\d{6}")
private String idOrder;

另一种选择是将 idOrder 保持为 int 并为字符串创建一个 getter:

public String getIdOrgetAsString(){
    String s = "000000" + idOrder;
    return s.substring(s.length() - 6);
}

无论如何,有一些选择。

于 2013-03-26T21:25:08.893 回答
2

你确定你的验证有效吗?

休眠文档说:

检查属性是否为最多包含整数位和小数位的数字。1

6位数是什么意思?是否支持前导零?或者该数字应该在 100.000 和 999.999 之间。在第一种情况下,我猜你的号码应该是一个字符串(带有@Length),在第二种情况下,我猜你应该使用@Min 和@Max。

于 2013-03-26T20:27:37.370 回答