Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring th:文本和th:字段中的日期格式相同_Spring_Date_Jpa_Thymeleaf - Fatal编程技术网

Spring th:文本和th:字段中的日期格式相同

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}}">

我有一个包含日期字段“validFrom”的实体。我想将日期显示两次,一次显示在日期为只读的表中,一次显示在可以设置日期的输入字段中。我的问题是,在这两种情况下,我无法使用客户端语言环境正确显示日期,该语言环境使用以下格式:dd.MM.yyyy

以下是jpa实体(不相关的注释被省略):

以下是显示实体的表格:

<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")