article thumbnail image
Published 2022. 7. 19. 11:15

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에서 각 변수에 유효성 조건과 메시지를 설정할수 있습니다.

'타임리프' 카테고리의 다른 글

타임리프 서버 재시작 없이 view 파일 변경  (0) 2022.07.18
타임리프 참고 사이트  (0) 2022.07.18
[타임리프] layout 설정  (2) 2022.07.15
타임리프 기본설정 문법  (0) 2022.07.08
복사했습니다!