쌓고 쌓다

HTML에서 날짜 입력 받아 서버에서 LocalDate로 받기 본문

프로그래밍/spring

HTML에서 날짜 입력 받아 서버에서 LocalDate로 받기

승민아 2023. 9. 20. 16:08

input 태그의 type 속성 값을 date로하면 날짜를 입력 받는 양식을 제공 받을 수 있다.

<div id="tab-container">
    <form th:action="@{/schedule}" method="post">
        <input type="date" id="start-date" name="startDate">
        <input type="date" id="end-date" name="endDate">
        <button type="submit">기간 설정 완료</button>
    </form>
</div>

 

 

 

Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDateTime'

서버에서 @RequestParam LocalDateTime으로 받으려고하면 타입 에러가 발생한다.

input 태그의 date는 폼 전송시 String으로 날라온다.

 

아래와 같이 한번 수정해서 받아온 파라미터를 출력해보자.

@PostMapping("/schedule")
public String makeSchedule(@RequestParam String startDate, @RequestParam String endDate) {
    System.out.println("startDate = " + startDate);
    System.out.println("endDate = " + endDate);
    return "makeScheduleBeta";
}

 

보면 시간 정보는 없고 날짜 정보인 yyyy-MM-dd만 가지고 있다.

시간 정보까지 필요한 LocalDateTime으로 변환하는데 타입 변환 에러가 난것같다.

 

날짜 정보만 다루는 LocalDate로 받아보자.

@PostMapping("/schedule")
public String makeSchedule(@RequestParam LocalDate startDate, @RequestParam LocalDate endDate) {
    System.out.println("startDate = " + startDate);
    System.out.println("endDate = " + endDate);
    return "makeScheduleBeta";
}

Comments