유효성 검사를 하려면 library를 추가하자! (스프링 부트 같은 경우는 그냥 spring-boot-starter-validation만 추가해주자)

유효성 검사를 하고 싶은 객체 앞에 @Valid를 붙여준다.

GetMappin("/")
public String test(@Valid Data data, BindingResult result){

}

위와 같이 Data객체 앞에 @Valid를 선언하면 Data 안에 프로퍼티 값들을 유효성 검사를 시작한다. 여기서 중요한 것은 변수에는 값은 들어간다는 것이다. 유효성 검사를 진행한 후 그것에 대한 결과는 BindingResult 내부에 들어가 있다.(리퀘스트 영역 안에는 errors라는 객체 안에 담겨진다.)

그렇다면 프로퍼티의 조건은 어떻게 설정을 하는 것 일까?

우리가 javax.validation library를 추가한 곳에 보면

JSR-303(ver.1.0)

JSR-380(ver.2.0)

위 어노테이션을 객체 내부의 property에 추가시키면 된다.

예시 :

public class ExampleBean{
	@NotBlank
	String data1;
}

본인 입맛대로 유효성 검사를 하고싶다면 어떻게 하는 것일까?

Validator customizing