【问题标题】:thymeleaf date format while eachthymeleaf 日期格式,而每个
【发布时间】:2018-11-09 14:23:34
【问题描述】:

我正在尝试应用 dates.format,而我在 thymeleaf 中执行 forEach。但我收到了这条消息

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>

【问题讨论】:

  • 我们在处理什么类型的对象e.datesCoordinates.created?它是字符串还是某些日期类型?
  • 这是一个字符串..

标签: java thymeleaf


【解决方案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')}

【讨论】:

    猜你喜欢
    • 2017-02-13
    • 2012-03-30
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 2017-10-06
    相关资源
    最近更新 更多