thymeleaf模板引擎-error不能使用预处理表达式({expression})

6l7fqoea  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(514)

我在尝试使用预处理表达式时遇到这种错误?
有人知道如何允许预处理表达式在thymeleaf模板引擎中可用吗?
我想我可能错过了模板引擎的一些配置,这就是它抛出此错误的原因。
是否有任何配置需要添加以使其工作?或者其他解决方法?
下面是我尝试使用的html和thymeleaf代码示例:

<li class="list-item" th:each="item : ${data.getApps(__${ids}__)}">
    <a th:text="${item.appName}">App Name</a>
</li>

错误如下:

Caused by: org.springframework.expression.spel.SpelParseException: Expression [data.getApps(__${ids}__)] @27: EL1043E: Unexpected token. Expected 'rparen())' but was 'lcurly({)'
vc9ivgsu

vc9ivgsu1#

从底层bean获取数据会有所帮助,但是您将业务逻辑放在表示逻辑中,这从来不是一个好主意。 ${ids} 是来自bean的某种变量,所以我要创建一个方法 getApps() 如下所示:

public Collection<App> getApps() {
    return getData(getIds());
}

然后按以下方式更改您的thymeleaf模板:

<li class="list-item" th:each="item: ${apps}">
    <a th:text="${item.appName}">App Name</a>
</li>

请注意,我必须猜测java代码是什么样子的,所以这可能是不精确的。

相关问题