错误:尝试在空上下文对象上调用方法“format”
Spring-boot v1.4.1
Java v1.8
Thymeleaf v2.1.5。
我视图中的以下代码行:
我有基于SO问题SpringBoot Thymeleaf Ordinal Numbers的语法产生错误:
org.springframework.expression.spel.SpelEvaluationException:EL1011E:(pos 11):方法调用:尝试在空上下文对象上调用方法格式(java.time.LocalDate,java.lang.String)
但是,如果我在没有Thymeleaf格式的情况下运行这行代码,它将工作并以默认格式呈现LocalDate对象表(“2016-05-25”)。
问题:为什么我收到’空上下文对象’错误,这是什么意思? 我如何编辑以获得我想要的格式?
要使用#temporals
对象,您需要在项目中包含thymeleaf-extras-java8time
模块。 这是extras模块的GitHub页面。
该模块添加了一个类似于标准方言中
#dates
或#calendars
的#temporals
对象,允许从Thymeleaf模板中格式化和创建时态对象。
在Spring Boot 1.4.1版本中,只需要包含extras模块,自动配置将为您设置它。 确保您提供的版本正确,取决于您的Thymeleaf版本:
- 版本3.0.0.RELEASE – 用于Thymeleaf 3.0(需要Thymeleaf 3.0.0+)
- 版本2.1.0.RELEASE – 用于Thymeleaf 2.1(需要Thymeleaf 2.1.3+)
我有与你一样的弹簧靴和百万美元版本,并且因为我提供了不合适的附加版本(3.0.0)而收到了同样的错误。 将其切换到较低版本修复了问题(在我的情况下在maven pom文件中):
org.thymeleaf.extras thymeleaf-extras-java8time 2.1.0.RELEASE