发送日期时,我遇到了Thymeleaf日期格式的问题。 HTML在h3标签内正确显示日期,但不在datepicker的代码中,我无法理解为什么....
<div>
<label for="birthdate" th:text="#{editprofile.about4.birthdate}">Birth date</label>
<label class="input">
<i class="icon-append fa fa-calendar"></i>
<input type="date" name="date" id="birthdate" class="form-control margin-bottom-20" th:value="${#dates.format(profile2about2th.birthdate,'yyyy/MM/dd')}" th:field="*{birthdate}">
</input>
</label>
<h3 th:text="${#dates.format(profile2about2th.birthdate,'yyyy/MM/dd')}"></h3>
</div>
&#13;
为什么它在一个地方显示日期,在另一个地方正确显示......输入类型=&#34;日期&#34;名称=&#34;出生日期&#34; ID =&#34;出生日期&#34; class =&#34; form-control margin-bottom-20&#34; value = &#34; 1932-10-10 00:00:00.0&#34;
由于
答案 0 :(得分:0)
th:field
和th:value
。 (th:field
设置其所在标记的name
,id
和value
属性。)如果您离开{{},您将看到正确的格式设置{ {1}},但表单无法正确提交。在我看来,解决这个问题的方法是:
将InitBinder方法添加到控制器,如下所示:
th:field
删除th:值。您的HTML应如下所示:
@Controller
public class WhateverController {
.
.
.
@InitBinder
public void initBinder (WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy/MM/dd"), true));
}
.
.
.
}
如果您希望这个方法适用于整个应用程序而不仅仅是那个控制器,还有一些方法可以添加全局绑定器。
答案 1 :(得分:0)