百里香叶日期格式,而每个

时间:2018-11-09 14:23:34

标签: java thymeleaf

我在百里香中进行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>

1 个答案:

答案 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')}