我想在字段(字符串在這種情況下)放置一組標準約束(如非空字母數字字符串長度從3到240個字符),並想知道是否有一種方法來重寫一些模型代碼中的這個約束。此外,這將是一個壓倒一切的,或者只是驗證兩次overrided註釋?JSR 303自定義約束覆蓋
它應該是這個
@AlphanumericString
@Size(min=100, max=150) //override standart values from AlphanumericString annotation
感謝像你的回答
OK,回答自己。有@OverridesParameter至極有助於重新分配嵌套註釋參數
@Numerical
@Size //arbitrary parameter values
@ConstraintValidator(FrenchZipcodeValidator.class)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface FrenchZipCode {
String message() default "Wrong zipcode";
String[] groups() default {};
@OverridesParameters({
@OverridesParameter(constraint=Size.class, parameter="min")
@OverridesParameter(constraint=Size.class, parameter="max") })
int size() default 5;
@OverridesParameter(constraint=Size.class, parameter="message")
String sizeMessage() default "{error.zipcode.size}";
@OverridesParameter(constraint=Numerical.class, parameter="message")
String numericalMessage() default "{error.zipcode.numerical}";
}
感謝,已經想通了,會嘗試使用這種方法,你能否建議我加快驗證的方法,除了每個應用程序僅對驗證工廠實例化一次,將驗證分爲組並將其從更快到更慢的處理時間排序? – Pilgrim