26

我有一个 Thymeleaf 模板代码来格式化日期。有时该日期将null在返回的对象中。null在这种情况下,在 Thymeleaf 中检查的最佳方法是什么?当前模板抛出以下错误:

Caused by: java.lang.IllegalArgumentException: Cannot apply format on null
    at org.thymeleaf.util.Validate.notNull(Validate.java:37)
    at org.thymeleaf.util.DateUtils.format(DateUtils.java:182)
    at org.thymeleaf.expression.Dates.format(Dates.java:164)
4

2 回答 2

58

您还可以在对象上使用条件表达式,以便仅在对象不为 null 时应用格式化方法:th:text="${myDate} ? ${#dates.format(myDate,...)}"

请注意,上面的表达式中没有“else”部分,在这种情况下,表达式将简单地返回 null(使th:text属性不写任何内容)。

(StackOverflow 要求的免责声明:我是 thymeleaf 的作者)

于 2012-12-13T20:42:08.033 回答
6

您可以使用 thymeleafs 对象实用程序类Objects或在将对象传递给模板之前对其进行验证。

我更喜欢预验证,因为您通常不想在模板中随意修改。同样,您可以使数据与视图松散耦合。

于 2012-12-11T17:49:57.277 回答