我使用驗證的INT屬性:的Java位數驗證
@Digits(integer=6,fraction=0)
private Integer idOrder;
但我希望這個屬性恰好有6位數字。
我該怎麼做? (使用JSP + Spring + Hibernate)
我使用驗證的INT屬性:的Java位數驗證
@Digits(integer=6,fraction=0)
private Integer idOrder;
但我希望這個屬性恰好有6位數字。
我該怎麼做? (使用JSP + Spring + Hibernate)
由於您需要6位數字,我認爲您應該使用字符串的屬性。如果在某些情況下需要將它作爲int,則可以使用模式驗證。在字符串中,您可以使用模式驗證。這將是somethind這樣的:
@Pattern(regexp="\\d{6}")
private String idOrder;
另一種選擇,就是保持一個idOrder INT,併爲字符串一個getter:
public String getIdOrgetAsString(){
String s = "000000" + idOrder;
return s.substring(s.length() - 6);
}
無論如何,有一些選項。
您確定您的驗證是否可用?
Hibernate文檔說:屬性
檢查是否具有多達位整數和分數小數位的數字。 1
什麼意思是正好6位數字?是否支持前導零?或者應該在100.000和999.999之間。在第一種情況下,我猜你的數字應該是一個字符串(帶有@Length),在第二種情況下,我想你應該使用@Min和@Max。
它不工作。 準確的6位數字我的意思是6個數字,如:000000,020123,123452,... – 2013-03-26 20:34:06
在這種情況下,使用帶@Length的字符串應該有效。如果沒有,我想你的驗證根本不起作用。或者一個字符串不適合你的用例?那麼,爲什麼不呢? – 2013-03-26 20:39:05
我必須使用int或Integer。 @Lenght只適用於Strings。 – 2013-03-26 20:41:05
有什麼不是關於這方面的工作? – 2013-03-26 20:25:21
我希望這個屬性有6位數字,如:000000,020123,123452. – 2013-03-26 20:35:44
你可以舉一個整數的例子,不應該允許你的問題中的代碼被允許嗎? – 2013-03-26 20:46:23