Spring MVC 格式化Thymeleaf中的th:字段

bmvo0sr5  于 2022-11-15  发布在  Spring
关注(0)|答案(2)|浏览(164)

我在Thymeleaf中有一个表单输入字段。该字段(在下面的代码片段中为bookingEntry.datefrom)是Date类型。我使用了一个日期选择器来允许用户选择和格式化所需的日期以输入该字段。这一切都很好。
然而,我希望日期的初始值(我已经将其设置为当前日期)以我选择的格式显示。那么,我如何设置最初显示在th:字段中的日期的格式呢?th:值被忽略了(Thymeleaf从支持对象中获取值,这是它应该做的),而且我似乎无法对th:字段应用格式。
百里香的代号是:

<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:字段中的初始值?
多谢

oyxsuwqo

oyxsuwqo1#

我错过了简单的答案,仅仅是因为我对Spring的了解有限。我在这里添加它,以防它对像我这样的新手有帮助。传递给表单的对象中元素上的@DateTimeFormat注解完成了这项工作。它确保Date对象按照您希望的方式格式化(无论您是否使用Thymeleaf)。
在上面的示例中,在bookingEntry对象中

@Temporal(DATE)
@DateTimeFormat (pattern="dd-MMM-YYYY")
private Date datefrom;
3phpmpom

3phpmpom2#

如果你的日期为空,它会给予你一个错误。我们必须在解析日期之前检查该值。

<input  type="text" name="date" 
        th:value="${user.dateOfBirth}?${#dates.format(user.dateOfBirth, 'dd-MM-yyyy')}:''" 
        placeholder="dd-mm-yyyy"  id="pickyDate"/>

相关问题