我在Thymeleaf有一个表单输入字段。字段(下面的代码片段中的bookingEntry.datefrom)是Date类型。我使用日期选择器允许用户选择并格式化输入字段所需的日期。这一切都很好。
但是,我想要以我选择的格式显示日期的初始值(我已设置为当前日期)。那么,如何格式化最初显示在th:字段中的日期。 th:忽略值(Thymeleaf从后备对象获取值,应该如此),我似乎无法将格式应用于th:field。
Thymeleaf代码是:
<input type="text" class="form-control getdate"
th:field="*{datefrom}" placeholder="Date From"
th:value="${#dates.format(bookingEntry.datefrom, 'dd-MMM-yyyy')}"/>
我确信我可以使用以我选择的任何格式初始化的String,而不是Date类型,但我想知道是否有办法在th:field中格式化初始值?
非常感谢
答案 0 :(得分:19)
我错过了简单的答案,仅仅因为我对Spring的了解有限。我在这里添加它,这可以帮助像我这样的任何其他新手。
传递给表单的对象中元素的@DateTimeFormat
注释执行作业。它确保Date
对象以您希望的方式格式化(无论您是否使用Thymeleaf)。
在上面的示例中,在bookingEntry
对象
@Temporal(DATE)
@DateTimeFormat (pattern="dd-MMM-YYYY")
private Date datefrom;
答案 1 :(得分:0)
如果您的日期为空,则会给您错误。我们必须在解析日期之前检查该值。
<input type="text" name="date"
th:value="${user.dateOfBirth}?${#dates.format(user.dateOfBirth, 'dd-MM-yyyy')}:''"
placeholder="dd-mm-yyyy" id="pickyDate"/>