我在百里香中进行forEach时尝试应用dates.format。但我收到此消息
org.thymeleaf.exceptions.TemplateProcessingException:异常 评估OGNL表达式:“ e.datesCoordinates.created”(模板: “模板/警报”-第262行,列48)
如果我在“ th:each”之外执行此操作,则效果很好。我该如何运作?
<div class="content" th:each="e : ${events}">
<div class="info date" th:value="${e.datesCoordinates.created}? ${#dates.format(e.datesCoordinates.created, 'dd/MM/yyyy HH:mm')}"></div>
<div class="info operator" th:text="|${e.owner.first_name} ${e.owner.last_name}|"></div>
</div>
答案 0 :(得分:1)
由于e.datesCoordinates.created是一个字符串,因此需要首先对其进行解析,然后才能对其进行格式化。以下代码应该可以工作。
<th:block th:with="sdf = ${new java.text.SimpleDateFormat('dd/MM/yyyy HH:mm')}">
<div class="content" th:each="e : ${events}">
<div class="info date" th:value="${e.datesCoordinates.created}? ${#dates.format(sdf.parse(e.datesCoordinates.created), 'dd/MM/yyyy HH:mm')}"></div>
<div class="info operator" th:text="|${e.owner.first_name} ${e.owner.last_name}|"></div>
</div>
</th:block>
重要
使用new java.text.SimpleDateFormat
时,您需要像当前字符串格式一样匹配表达式。例如,如果您要像 10-03-2018 那样保存,那么您的代码将像这样${new java.text.SimpleDateFormat('dd-MM-yyyy')}
。