아이디
이름
생년월일
비밀번호
비밀번호 확인
@Validated 사용위치 - @ModelAttribute 앞
@NotBlank / @NotEmpty / @NotNull 에 대한 차이 숙지(허용범위의 차이)
https://velog.io/@invigorating92/beanValidation
Validation 실패로 생기는 에러 메시지 생성 과정 다시 공부 필요
Validation 오류 메시지 띄우기 위해 컨트롤러와 타임리프에 아래와 같은 코드 필요
컨트롤러
if (bindingResult.hasErrors()){
log.info("검증 오류");
return "members/addForm";
}
- return으로 가입 페이지에 다시 접근 후에 에러 메시지를 띄운다.
- 기존에 작성한 내용은 유지된다. (password는 제외)
타임리프
<p th:errors="*{loginId}"></p>
- 각 th:field 마다 작성해줘야 함
@PostMapping("/add")
public String postAdd(@Validated @ModelAttribute(name = "member") Member member, BindingResult bindingResult){
String password = member.getPassword();
String rePassword = member.getRePassword();
if(!password.equals(rePassword)){
log.info("비밀번호 일치안함");
log.info("password={}, rePassword={}",member.getPassword(), member.getRePassword());
bindingResult.reject("notEqual");
return "members/addForm";
}
}
타임리프
<div th:if="${#fields.hasGlobalErrors()}">
<p th:each="err : ${#fields.globalErrors()}" th:text="${err}">글로벌 오류 메시지</p>
</div>