[SpringBoot] input 태그 date 타입을 LocalDate 타입으로 매핑하기

2022. 9. 7. 13:04문제해결

개요

SpringBoot 기반으로 회원가입 서비스를 구현중 회원의 생년월일을 입력받아 저장합니다.

 

createMemberForm.html

<div class="container">
    <div th:replace="fragments/bodyHeader :: bodyHeader"/>
    <form role="form" action="/members/new" th:object="${memberForm}" method="post">
    	...
        
        <div class="form-group">
            <label th:for="birthday">생년월일</label>
            <input type="date" th:field="*{birthday}" class="form-control">
        </div>
        
        ...
</div> <!-- /container -->

위와 같이 생년월일 입력 필드가 있다고 가정합니다. 

 

MemberForm 클래스

@Getter
@Setter
public class MemberForm {
	...
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    ...
}

MemberForm 클래스의 birthday 필드 멤버 타입은 java.time.LocalDate 클래스입니다. @DateTimeFormat 어노테이션을 이용하여 입력받은 날짜 형식을 "yyyy-MM-dd" 형식으로 입력받습니다. 

 

References

source code : https://github.com/yonghwankim-dev/spring_movie/blob/main/src/main/java/kr/yh/movie/controller/MemberForm.java