프로그래밍/Spring Framework

Spring framework Validator 검증

RECORD :D 2018. 8. 8. 14:52

웹어플리케이션에서 데이터의 유효성을 검사하기 위한 방법으로 Front단에서 Javascript를 이용해 사용하는 방법이 있고, Back-end에서 Validator 객체를 사용하는 방법이 있다.

커맨드 객체의 유효성을 검사하기 위해 Validator 인터페이스를 사용하는 방법에 대해서 알아보겠다.


먼저 Student 클래스를 만들어 필요한 데이터들을 클래스화 해준다.


먼저 Validator를 인터페이스한 클래스를 하나 만들어준다.

Validator 을 인터페이스에서 검색 한 후 2번째에 있는 것을 클릭해준다.


Validator 인터페이스를 받은 클래스는 다음과 같이 2가지 메소드가 자동으로 오버라이딩된다. 첫 번째 supports 메소드는 검증할 객체의 클래스 타입 정보를 명시해준다.

두 번째 validate 메소드는 parameter 객체를 두 개 받는데 첫 번째 파라미터는 무엇이 들어올지 모르기때문에 Object로 받는다. 두 번째 파라미터는 에러객체이다.


이제 Controller 에서 Validator을 사용하면 된다. 검증 시 에러가 있으면 로그인 되지 않고 에러가 없으면 로그인 성공 페이지로 이동한다.



ValidationUtils.rejectIfEmptyOrWhitespace(errors,"name","trouble");

Spring이 제공해 주는 메소드이다. 비어있거나 공백이면 에러에 name,trouble 값을 넣어준다.


================================================================================================================================================


이제 @Valid 어노테이션을 사용해 간단하게 유효성 검사하는 법을 알아보자.

제일 먼저 pom.xml 파일에서 dependency를 추가해야한다.

버젼은 5.2.4.Final 해도 된다. 


커맨드 객체 앞에 @Valid를 추가해주고 밑에 initBinder 메소드를 추가하면 알아서 spring이 알아서 에러를 찾아준다.