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.)