build.gradle
implementation 'org.springframework.boot:spring-boot-starter-validation'
- validation 라이브러리를 추가합니다.
Controller
@GetMapping(value = "/members/new")
public String createForm(Model model){
model.addAttribute("memberForm", new MemberForm());
return "members/createMemberForm";
}
@PostMapping(value = "/members/new")
public String create(@Valid MemberForm form, BindingResult result){
//회원가입 유효성 error시 회원가입화면으로 return
if(result.hasErrors()){
return "members/createMemberForm";
}
return "redirect:/";
}
MemberForm.java
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotEmpty;
@Getter
@Setter
public class MemberForm {
@NotEmpty(message = "회원 이름은 필수 입니다.")
private String name;
private String city;
private String street;
private String zipcode;
}
createMemberForm.html
<form role="form" action="/members/new" th:object="${memberForm}"
<div class="form-group">
<label th:for="name">이름</label>
<input type="text" th:field="*{name}" class="form-control"
placeholder="이름을 입력하세요"
th:class="${#fields.hasErrors('name')}? 'form-control fieldError' : 'form-control'">
<p th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Incorrect date</p>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
MemberForm.java에서 각 변수에 유효성 조건과 메시지를 설정할수 있습니다.
'frontend > 타임리프' 카테고리의 다른 글
타임리프 서버 재시작 없이 view 파일 변경 (0) | 2022.07.18 |
---|---|
타임리프 참고 사이트 (0) | 2022.07.18 |
[타임리프] layout 설정 (2) | 2022.07.15 |
타임리프 기본설정 문법 (0) | 2022.07.08 |