복붙노트

[SPRING] 필드가 Null이 아닌 경우에만 유효성 검사

SPRING

필드가 Null이 아닌 경우에만 유효성 검사

나는 JSR303 Spring Validation을 사용하며 다음과 같은 것들이있다;

@Digits(fraction = 0, integer = 15)
private String tpMobile;

유효성 검사에서 10-15 자리 사이의 숫자 여야하지만이 필드는 선택 사항입니다. 따라서 사용자가 비워두면 같은 오류 메시지가 나타납니다.

그래서 필드가 비어 있지 않은 경우에만 유효성을 검사합니다. 필드가 비어 있으면 해당 필드의 유효성 검사를 건너 뜁니다.

해결법

  1. ==============================

    1.@Digit을 사용하는 대신 @Pattern (message = "YOUR_MESSAGE", regexp = "REGULAR_EXPRESSION")을 사용하도록 제안합니다.

    @Digit을 사용하는 대신 @Pattern (message = "YOUR_MESSAGE", regexp = "REGULAR_EXPRESSION")을 사용하도록 제안합니다.

    주된 이유는 우리가 사용자를 제한하고자하는 값 집합에 대한 메시지를 표시한다는 것입니다. 여기에서 사용자가 제한하고 싶지 않은 값에 대한 메시지가 표시됩니다.

    그래서 빈 공간과 numbers 이외의 것을 입력하도록 사용자를 제한하려고합니다. 정규식을 작성하고 그와 함께 @Pattern을 사용하십시오.

    귀하의 경우 :

    @Pattern(message="YOUR_MESSAGE", regexp="^(\\s*|\\d{10,15})$")
    
  2. ==============================

    2.분명히 폼은 null 대신 빈 문자열을 제출합니다. tpMobile의 가치를 확인하십시오.

    분명히 폼은 null 대신 빈 문자열을 제출합니다. tpMobile의 가치를 확인하십시오.

  3. from https://stackoverflow.com/questions/19262979/validate-only-if-the-field-is-not-null by cc-by-sa and MIT license