thymeleaf 문법 사용하기
@Data
public class MemberSaveDTO {
@NotBlank(message = "이메일은 필수입니다.")
@Pattern(regexp = "[a-zA-Z1-9]{6,12}", message = "이메일은 영어와 숫자로 포함해서 6~12자리 이내로 입력해주세요.")
private String memberEmail;
@NotBlank
@Length(min = 2, max = 8, message = "2~8자로 입력해주세요")
private String memberPassword;
private String memberName;
}
@Controller
@RequestMapping("/member/*")
public class MemberController {
@GetMapping("save")
public String saveForm(Model model) {
model.addAttribute("member", new MemberSaveDTO());
return "/member/save";
}
@PostMapping("save")
public String save(@Validated @ModelAttribute("member") MemberSaveDTO memberSaveDTO, BindingResult bindingResult) {
System.out.println("MemberController.save");
System.out.println("memberSaveDTO = " + memberSaveDTO);
if(bindingResult.hasErrors()){
return "member/save";
}
return "member/login";
}
<html lang="en" xmlns:th="http://www.thymeleaf.org">
th:object="${member}" //담기
th:field="*{memberEmail}"//(name, id 자동생성)
th:if="${#fields.hasErrors('memberEmail')}"
th:errors="*{memberEmail}" //p태그에 에러메세지를 보여줌
th:errorclass="field-error" //style 지정
<form action="/member/save" method="post" th:object="${member}">
이메일 : <input type="text" th:field="*{memberEmail}" placeholder="이메일">
<p th:if="${#fields.hasErrors('memberEmail')}" th:errors="*{memberEmail}" th:errorclass="field-error"></p>
<input type="submit" value="회원가입">
</form>
타임리프 문법 어렵지만 계속 보고 이해해 봐야겠다!