Spring - Thymeleaf日期类型

时间:2015-04-09 00:55:19

标签: spring date thymeleaf

我是春天和百里香的新人,很抱歉这个愚蠢的问题。

我有一个表单必须根据用户选择的日期过滤一些数据。 我有这门课:

public class RequestFilterEntity {
  private Date requestedAt;
  private Date dateScheduled;
  ...
 }

我在控制器中有这个端点:

 @RequestMapping(value = "/requests", method = POST)
    public String filterRequests(RequestFilterEntity requestFilter, Model model) {

    model.addAttribute("requestFilter", new RequestFilterEntity());

    return "admin/reporting/filter_requests";
}

和这个观点:

 <form method = "post" th:object="${requestFilter}" th:action="@{|/admin/reporting/requests|}">

    <div class="form-group">
      <label for="requested">Requested at </label>
      <input id="requested" type="date" class="form-control" th:field="*{requestedAt}"/>
    </div>

我希望Controller传递给View的对象requestFilter将使用用户选择的日期设置Date requestedAt(注意我使用的是input type =“date”)

有意义吗?我在视图中有错误。有人可以帮我吗?我的错误在哪里?

1 个答案:

答案 0 :(得分:2)

几乎没有问题。

  1. 您正在从控制器传递一个空对象,并希望它显示在您的视图中。
  2. model.addAttribute("requestFilter", new RequestFilterEntity());

    1. 您没有格式化日期对象。请将此initbinder添加到您的控制器
    2. InitBinder用于自定义日期编辑器

      @InitBinder
      public void initBinder(WebDataBinder binder) {
          CustomDateEditor editor = new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true);
          binder.registerCustomEditor(Date.class, editor);
      }