Validation - 검증 직접처리
/mvc2/validation 프로젝트를 이용한다.

검증 직접 처리
상품 저장 성공

상품 저장 실패

하고 싶은 로직은 간단하게 컨트롤러에서 검사를 하여 조건에 맞지 않는 값이 들어오면 addForm.html을 다시 보여주는 로직을 짜고 싶은 것이다.
개발

직접 에러를 입력하는 방법은 간단하다.
Item에 입력된 값을 직접 가져와 검사를 진행한 후
조건에 맞지 않으면 errors에 에러 내용을 담는 것이다.

그 후에 errors에 하나라도 오류가 담겨있다면, model에 에러 정보를 넣어주고 addForm으로 즉, 입력 폼으로 다시 넘어가게 된다.
addForm.html

이 부분은 사실 프로젝트 진행하면서 이미 쓸대로 써본 형식이다.
css 추가
.field-error {
border-color: #dc3545;
color: #dc3545;
}



이런식으로 나온다.
참고 Safe navigation Operator
만약 errors가 null이라면 어떻게 될까?
처음에 등록폼에 진입할때는 errors가 없다.
따라서 errors.containKey()를 호출한 순간 NullPointerException이 발생한다.
근데 errors?.는 errors가 null일때 예외가 아니라 null을 반환해주는 문법이다.
th:if에서 null은 실패로 처리되므로 오류 메시지가 출력되지 않는다.
스프링의 SpringEL이 제공하는 문법이다.
https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#expressions-operator-safe-navigation
남은 문제점
뷰 템플릿에서 중복 처리가 많다.
타입 오류 처리가 안된다.
Integer가 들어가야할 곳에 String이 들어가면 400 오류 페이지가 나온다. 이는 컨트롤러에 진입하기도 전에 예외가 발생해서 그런 것이다.
Author And Source
이 문제에 관하여(Validation - 검증 직접처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@seungju0000/Validation-검증-직접처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)