Spring Boot static 폴더와 template폴더의 차이
- template : thymleat의 파일을 두는 곳
- static : 보통 css나 js를 둔다.
bindingResult
- 스프링이 제공하는 검증 오류를 보관하는 객체이다. 검증 오류가 발생하면 여기에 보관하면 된다.
- BindingResult가 있으면 @ModelAttribute에 데이터 바인딩 시 오류가 발생하도록 컨트롤러가 호출된다.
- 주의사항 : 검증할 대상 바로 다음에 와야 한다. 순서가 중요
- @ModelAttribute Item item, 바로 다음에 BindingResult가 와야 한다.
- BindingResult는 Model에 자동으로 포함된다.
- th:errors="field-error" : 해당 필드에 오류가 있는 경우에 태그를 출력한다. th:if의 편의 버전이다.
- th:errorclass="field-error" : th:field에서 지정한 필드에 오류가 있으면 class 정보를 추가한다.
FieldError 생성자
- 파라미터 목록
-> object : 오류가 발생한 객체 이름
-> field : 오류필드
-> rejectedValue : 사용자가 입력한 값(거절된 값)
-> bindingFailure : 타이 오류 같은 바인딩 실패인지, 검증 실패인지 구분(바인딩 자체가 오류가 아니므로 false)
-> code : 메시지 코드
-> arguments : 메시지에서 사용하는 인자
-> defaultmessage : 기본 오류 메시지