我正在使用spring boot,我的物件的一個??輸入,必須只接受一組整數,而我沒有得到它。
這是我的最后一種方法:
@Pattern(regexp="\\d{1111}|\\d{2222}|\\d{3333}|\\d{4444}", message="The value has to be '1111','2222','3333' or '4444'")
private int code;
這是無效的,因為我收到此錯誤:
"statusText": "HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validating type 'java.lang.Integer'. Check configuration for 'code'",
我該如何管理?
uj5u.com熱心網友回復:
問題是@Pattern 它只適用于字串。
您可以使用@Digits驗證器來驗證整數部分必須包含多少位:https : //www.baeldung.com/javax-bigdecimal-validation#3-digits
如果這對您不起作用,那么您將不得不撰寫自己的自定義驗證器:https : //www.baeldung.com/spring-mvc-custom-validator#custom-validation
uj5u.com熱心網友回復:
@Pattern注釋僅適用于字串而不適用于整數。如果合適,您可以將您的遷移int到一個String。然后它會作業。
你也可以實作自己Validator所看到這里。
uj5u.com熱心網友回復:
正如其他人已經回答的那樣,@Pattern 不適用于整數,但適用于字串(更準確地說是 CharSequence)。但我想指出您的正則運算式模式與錯誤訊息不匹配。
您指定的模式意味著 - 匹配長度為 1111 位或長度為 2222 位的數字,依此類推。
根據訊息,您需要類似^1111$|^2222$|^3333$|^4444$or 的模式^([1234])\1{3}$,這意味著完全匹配 1111、2222、3333 或 4444。
uj5u.com熱心網友回復:
一種解決方案可以是
@Pattern(regex = "[0-9] ")
private Integer code;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/408178.html
標籤:
