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>
解决方案
由于 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')}
。
推荐阅读
- css - Grunt sass:压缩期间的换行符差异
- socket.io - Socket.io:如何处理两个用户加入同一个 DM 聊天室
- angular11 - 组件中更新的 Angular 11 变量未在模板中更新
- azure - 如何使用 labview 应用程序检索存储在 azure 或一个驱动器中的文件?
- android - Android RecyclerView LayoutOrientation 不起作用
- bison - 如何从 flex 调用 yyerror()?
- c# - 为什么零长度的 stackalloc 让 C# 编译器乐于允许有条件的 stackalloc?
- r - 根据匹配列将列复制到另一个数据框中
- c# - Bitmap.Save 出现 Null 异常的错误,但它显然已实例化
- django - Django 上的社交网络登录失败,回调 url 不匹配