1
스프링 필드에서 유효성을 검사하기 위해 JSR-303을 사용하고 있습니다. 내 모든 유효성 검사 논리를 한 클래스에 넣고 그에 따라 각 오류에 대한 메시지를 표시하고 싶습니다. 이것이 가능한가? 각 유효성 검사 (예 : PasswordLengthValidator, PasswordRegexValidator)에 대해 별도의 클래스를 만드는 것이 더 나은 방법입니까?스프링 MVC 유효성 검사 : 각 유효성 검사에 대해 특정 오류 메시지 설정
현재 암호 인터페이스를 기반으로 한 오류 메시지 만 표시 할 수 있습니다. 여기
@Documented
@Constraint(validatedBy = PasswordValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Password {
String message() default "{Password}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
내 유효성 검사기 클래스입니다 : 여기
는 @Password 주석에 대한 내 인터페이스입니다
public class PasswordValidator implements ConstraintValidator<Password, String> {
public void initialize(Password arg0) {
// TODO Auto-generated method stub
}
public boolean isValid(String field, ConstraintValidatorContext ctx) {
// TODO validation validation validation
if(StringUtils.isEmpty(field)) {
// Message: password can not be empty
return false;
}
// match some password regex
if(field.matches("^(?=.*[A-Z].*[A-Z])(?=.*[[email protected]#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$")) {
// Message: password should be bla bla
return false;
}
return true;
}
}