6.2 series - Hibernate Validator
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 |