본문 바로가기

컴퓨터공학/Spring & Hibernate

Spring> MVC> Form validation> Built in validation rule

6.2 series - Hibernate Validator

 

6.2 series - Hibernate Validator

Express validation rules in a standardized way using annotation-based constraints and benefit from transparent integration with a wide variety of frameworks.

hibernate.org

Hibernate Validator 6.2 버전을 다운 받는다.

7 버전은  jakarta.ee 만 지원돼서 안된다.

6.2.가 java.ee 를 지원한다. 

기능은 같으므로 6.2를 해도 상관 없다. 

위 사이트에서 다운받고 압축풀면 dist 폴더에 세 개의 라이브러리가 있는데 집어 넣어준다.

하위 폴더 [lib] - [required] 에 4개의 파일이 있는데 그것도 넣어줌


Customer 클래스를 새로 만들어 준다.

lastName에 에러 조건이 달려있다.

 

Controller도 하나 만들어 줌

Customer 객체 하나 만들어주고 이름을 customer라고 지어줌

/customer/showForm 접근 시 customer-form.jsp 이동

 

먼저 메인화면에서 접근할 수 있도록 링크 달자

 

 

 

customer-form.jsp 파일도 만들어 준다.

Submit 클릭 시, Customer 객체를 customer 라고 이름을 지은 객체의 필드에 입력값을 저장한다.

즉, submit 을 누르면 customer.setFirstName( ) / customer.setLastName( ) 이 실행되면서 저장됨

알아둘 것은 필드 이름인 firstName이면 getter/setter 생성시 getFirstName/ setFirstName이 됨

그냥 알아 두자.

 

암튼 값을 저장한 customer를 가지고 processForm으로 이동한다. 

 

 

 

 

 

 

 

 

 

processForm을 보면

@Valid @ModelAttribute 는 customer 객체에 있는 값이 유효한 지 검사하는 부분

유효성 결과값은 BindingResult에 넣는다.

실패하면 customer-form.jsp 으로 이동하여 다시 입력하게

성공하면 customer-confirmation.jsp  으로 가서 결과 화면 표시

 

 

흐름을 잡자면

Customer Controller에서 객체를 만들어서 customer-form에 던져주면

customer-form에서는 데이터를 입력하고 다시 Customer Controller에 던진다.

Customer Controller는 객체에 적혀진 유효성 법칙을 참고하여 에러인지 아닌지 확인

에러면 다시 form 으로 가고

정상이면 객체에 값 저장 후  결과 확인 화면으로 간다.

 

 

 

 


@InitBinder 사용하기

객체 필드에 공백값이 있으면 싹 다 지우고 Null 값으로 바꾸고 처리하는 과정이다.

Null값이 있으니 Controller에서는 다시 customer-form.jsp로 이동한다.

그리고 객체에 써놓은 에러메세지를 페이지에 보여준다.

 

 

 

'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글

Spring> Hibernate> Intro  (0) 2021.04.23
Spring> MVC> Form validation  (0) 2021.04.20
Spring> MVC> From Tags and Data Binding  (0) 2021.04.19
Spring> MVC> Controller and View  (0) 2021.04.17
Spring> Annotation> Properties File  (0) 2021.04.15