@Valid 사용시 


<annotation-driven />

을 사용해서 어노테이션을 설정하고 2개의 패키지를 기본으로 import해야 합니다.


validation-api , hibernate-validator 로 2개의 패키지는 버전 의존성이 있어 


org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean 와 같은 에러가 발생 되면 

jar파일의 버전을 확인 해야 합니다.


hibernate-validator 5.x = validation-api 1.1.0.Final 과

hibernate-validator 4.x = validation-api 1.0.0.GA 과 동작 하게 됩니다.


hibernate-validator 는 기본적으로 hibernate-core 와 버전을 맞춰 주는 작업 역시 진행 해야 합니다.


@ModelAttribute @Valid DTO_MODEL dtoInfo,

BindingResult bindingResult,


선언 후 dto 변수에

@AssertFalse : false 값만 통과 가능

 @AssertTrue : true 값만 통과 가능

 @DecimalMax(value=) : 지정된 값 이하의 실수만 통과 가능

 @DecimalMin(value=) : 지정된 값 이상의 실수만 통과 가능

 @Digits(integer=,fraction=) : 대상 수가 지정된 정수와 소수 자리수보다 적을 경우 통과 가능

 @Future : 대상 날짜가 현재보다 미래일 경우만 통과 가능

 @Past : 대상 날짜가 현재보다 과거일 경우만 통과 가능

 @Max(value) : 지정된 값보다 아래일 경우만 통과 가능

 @Min(value) : 지정된 값보다 이상일 경우만 통과 가능

 @NotNull : null 값이 아닐 경우만 통과 가능

 @Null : null일 겨우만 통과 가능

 @Pattern(regex=, flag=) : 해당 정규식을 만족할 경우만 통과 가능

 @Size(min=, max=) : 문자열 또는 배열이 지정된 값 사이일 경우 통과 가능

선언을 이용해서 제약을 줄 수 있으며 BindingResult 를 이용해서 단순히 에러 페이지로 이동 시키거나 form태그를 이용해서 jsp페이지에서 에러 메시지를 출력 할 수도 있습니다.


java에서 에러 메시지를 가지고 오고자 하는경우 


FieldError fieldError = bindingResult.getFieldError();

fieldError.getDefaultMessage()

메소드를 이용해서 아래와 같이 설정한 메시지를 java단에서 호출도 가능 합니다.


 @Size(max=50,message="데이터는 50자미만으로 작성해야 합니다.")

반응형

'spring' 카테고리의 다른 글

ajax 전송시 415에러 발생  (0) 2021.04.30
spring 다중 DB접속 mapper scan  (0) 2020.09.04
aspect bofore 관련  (0) 2016.07.01
sessionFactory annotatedClasses/packagesToScan 방식  (0) 2015.07.27
spring+hsqldb 사용설정  (0) 2015.07.15
Posted by 질주하는구
,