格式化:Thymeleaf中的字段

时间:2013-12-03 21:08:34

标签: spring-mvc thymeleaf

我在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中格式化初始值?

非常感谢

2 个答案:

答案 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"/>