Spring boot / Thymeleaf - 从输入中获取时间

时间:2017-07-24 22:28:10

标签: spring spring-boot 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

我分别测试了日期输入和时间输入,它是给我带来麻烦的时间输入。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

查看您的错误可能是由Validation Layer导致它拒绝您的对象。我建议您尝试调试或打印错误列表,看看哪种错误拒绝了您的请求。