2017-07-24 56 views
1

我試圖在窗體中使用單獨的輸入獲取日期和時間。 到目前爲止,獲得日期正在工作,但使用 獲得時間(小時和分鐘)會導致錯誤。 這裏是我的實體類的一部分:春季啓動/ Thymeleaf - 從輸入獲取時間

@Temporal(TemporalType.DATE) 
@DateTimeFormat(pattern = "yyyy-MM-dd") 
private Date start_date; 

@Temporal(TemporalType.TIME) 
@DateTimeFormat(pattern = "HH:mm") 
private Date start_hour; 

下面是我使用從用戶獲取數據表格的一部分:

<div class="row"> 
    <div class="col-6"> 
     <label th:attr="for='start_date_'+${subject.id}">Start Date</label> 
     <input class="form-control" type="date" th:attr="id='start_date_'+${subject.id}" th:field="*{start_date}"/> 
    </div> 
    <div class="col-6"> 
     <label th:attr="for='start_time_'+${subject.id}">Start hour</label> 
     <input class="form-control" type="time" th:attr="id='start_time_'+${subject.id}" th:field="*{start_hour}"/> 
     </div> 
</div> 

我不斷收到錯誤:

There was an unexpected error (type=Bad Request, status=400). Validation failed for object='lesson'. Error count: 1

我分別測試了日期輸入和時間輸入,這是時間輸入,給我帶來麻煩。

回答

0

試圖改變數據類型

java.sql.Datejava.sql.Time

或者如果你是Java的8

@Temporal(TemporalType.DATE) 
@DateTimeFormat(iso = ISO.DATE) 
private LocalDate start_date; 

@Temporal(TemporalType.TIME) 
@DateTimeFormat(iso = ISO.TIME) 
private LocalDateTime start_hour; 
0

看到你的錯誤,也許它是由Validation Layer它拒絕引起的目的。我建議您嘗試調試或打印錯誤列表,並查看拒絕您的請求的錯誤類型。

0

查看@InitBinder文檔,有助於解決您的問題