[SPRING] 값 목록을 확인하는 javax.validation?
SPRING값 목록을 확인하는 javax.validation?
javax.validation을 사용하여 annotation을 사용하여 이러한 값 (red, blue, green, pink) 만 필요로하는 color라는 string 유형의 변수의 유효성을 검사 할 수 있습니까?
@size (min = 1, max = 25) 및 @notnull을 보았지만이 @In (빨강, 파랑, 녹색, 분홍색)과 같은 것이 있습니다.
mysql에서 사용 된 In-keyword와 다소 비슷합니다.
해결법
-
==============================
1.이 경우 아래의 스 니펫처럼 @Pattern 주석을 사용하는 것이 더 간단 할 것이라고 생각합니다. 대소 문자를 구별하지 않으려면 적절한 플래그를 추가하십시오.
이 경우 아래의 스 니펫처럼 @Pattern 주석을 사용하는 것이 더 간단 할 것이라고 생각합니다. 대소 문자를 구별하지 않으려면 적절한 플래그를 추가하십시오.
@Pattern (regexp = "red | blue | green | pink", flags = Pattern.Flag.CASE_INSENSITIVE)
-
==============================
2.사용자 정의 유효성 검사 주석을 만들 수 있습니다. 나는 그것을 여기에 쓸 것이다 (테스트받지 않은 코드!) :
사용자 정의 유효성 검사 주석을 만들 수 있습니다. 나는 그것을 여기에 쓸 것이다 (테스트받지 않은 코드!) :
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER }) @Retention(RUNTIME) @Documented @Constraint(validatedBy = InConstraintValidator.class) public @interface In { String message() default "YOURPACKAGE.In.message}"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default {}; Object[] values(); // TODO not sure if this is possible, might be restricted to String[] } public class InConstraintValidator implements ConstraintValidator<In, String> { private Object[] values; public final void initialize(final In annotation) { values = annotation.values(); } public final boolean isValid(final String value, final ConstraintValidatorContext context) { if (value == null) { return true; } return ...; // check if value is in this.values } }
-
==============================
3.열거 형을 만들 수 있습니다.
열거 형을 만들 수 있습니다.
public enum Colors { RED, PINK, YELLOW }
그러면 모델에서 다음과 같이 유효성을 검사 할 수 있습니다.
public class Model { @Enumerated(EnumType.STRING) private Colors color; }
열거 형에 대해 페이로드의 유효성을 검사합니다. @유효한 RestController에서.
from https://stackoverflow.com/questions/4922655/javax-validation-to-validate-list-of-values by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 사용자가 자신의 프로필 만 업데이트하도록 스프링 부트 보안을 구성하는 방법 (0) | 2019.06.05 |
---|---|
[SPRING] org.springframework.boot 패키지가 존재하지 않습니다. (0) | 2019.06.05 |
[SPRING] Spring MVC Rest Services - 스레드 수 (컨트롤러 인스턴스) (0) | 2019.06.03 |
[SPRING] 스프링 부트에서 DispatcherServlet Initializer 기능을 얻는 방법 (0) | 2019.06.03 |
[SPRING] 봄 MVC 최대 절전 모드 인코딩 / 다중 라인 가져 오기 SQL (0) | 2019.06.02 |