ため@digitについては、以下のURL
を一緒に行きます必要です。
注釈:
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { BigDecimalLengthValidator.class})
public @interface BigDecimalLength {
int maxLength();
String message() default "Length must be less or equal to {maxLength}";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
ConstraintValidator:
public class BigDecimalLengthValidator implements ConstraintValidator<BigDecimalLength, BigDecimal> {
private int max;
@Override
public boolean isValid(BigDecimal value, ConstraintValidatorContext context) {
return value == null || value.toString().length() <= max;
}
@Override
public void initialize(BigDecimalLength constraintAnnotation) {
this.max = constraintAnnotation.maxLength();
}
}
使用法:さらにチューニングのための基本的なニーズを埋める必要があります
@BigDecimalLength(maxLength = 3)
private BigDecimal totalPrice;
(メッセージを次のようにそれは大まかに行うことができますプロパティファイルなど)は
Creating custom constraintsにチェックしてください。
最大10文字***ですか? 'bd.toString()。length()<= 10' – Andreas
JSRアノテーションを使って検証します。そのようにはなりません –
独自のカスタム制約、つまり独自のアノテーションと独自の 'ConstraintValidator'実装を実装します。 – Andreas