Spring th:文本和th:字段中的日期格式相同
我有一个包含日期字段“validFrom”的实体。我想将日期显示两次,一次显示在日期为只读的表中,一次显示在可以设置日期的输入字段中。我的问题是,在这两种情况下,我无法使用客户端语言环境正确显示日期,该语言环境使用以下格式:dd.MM.yyyy 以下是jpa实体(不相关的注释被省略): 以下是显示实体的表格:Spring th:文本和th:字段中的日期格式相同,spring,date,jpa,thymeleaf,Spring,Date,Jpa,Thymeleaf,我有一个包含日期字段“validFrom”的实体。我想将日期显示两次,一次显示在日期为只读的表中,一次显示在可以设置日期的输入字段中。我的问题是,在这两种情况下,我无法使用客户端语言环境正确显示日期,该语言环境使用以下格式:dd.MM.yyyy 以下是jpa实体(不相关的注释被省略): 以下是显示实体的表格: <tr th:each="item: ${allItems}"> <td><span th:text="${{item.validFrom}}">
<tr th:each="item: ${allItems}">
<td><span th:text="${{item.validFrom}}"></span></td>
我在文本字段中获得了正确的格式,但输入字段仍然为空,浏览器控制台中显示以下错误消息:
规定值“18.05.2018”不符合要求
格式为“yyyy-MM-dd”
我最后尝试的一件事是在文本字段中使用thymeleaf的#dates.format(date)。不幸的是,这还附加了HH:MM:SS,这是我不想要的
现在,我当然可以将格式'dd.MM.yyyy'作为第二个参数传递,但随后它被硬编码到我的html中,这会破坏i18n。所以我试图传递#{date.format},这是我在messages.properties中指定的,但这导致了一个解析错误
表达式[#dates.format(item.validFrom,#{date.format})]@31:
EL1043E:意外令牌。应为'identifier',但为'lcurly({)'
如何解决此问题?您是否尝试使用过滤器?我认为问题在于
type=“date”
您是否需要它?您是否尝试th:text=“${#dates.format(item.validFrom,'dd.MM.yyyy')”
@Metroids如果我想要标准化的日期输入,我想我确实需要它,不是吗?@want2learn正如我所说,我不想破坏国际化。如果我在德语区域硬编码格式,我不能在不同的区域使用相同的html。
<tr th:each="item: ${allItems}">
<td><span th:text="${{item.validFrom}}"></span></td>
<form th:action="@{/categories/edit}" th:object="${entity}" method="post">
<input type="date" th:field="*{validFrom}"/>
@DateTimeFormat(pattern = "dd.MM.yyyy")