Thymeleaf:串联-无法解析为表达式

尝试在模板中合并多个值时遇到问题。根据Thymeleaf的说法,我应该可以将它们+一起组合在一起…

文本,无论它们是文字还是评估变量或消息表达式的结果,都可以使用+运算符轻松连接:

th:text="'The name of the user is ' + ${user.name}"

这是我发现有效的示例:

<p th:text="${bean.field} + '!'">Static content</p>

但是,这不是:

<p th:text="${bean.field} + '!' + ${bean.field}">Static content</p>

从逻辑上讲,这应该可以,但是不能,我在做什么错?


Maven:

<dependency>

<groupId>org.thymeleaf</groupId>

<artifactId>thymeleaf-spring3</artifactId>

<version>2.0.16</version>

<scope>compile</scope>

</dependency>


这是我设置TemplateEngine和TemplateResolver的方法:

<!-- Spring config -->

<bean id="templateResolver" class="org.thymeleaf.templateresolver.ClassLoaderTemplateResolver">

<property name="suffix" value=".html"/>

<property name="templateMode" value="HTML5"/>

<property name="characterEncoding" value="UTF-8"/>

<property name="order" value="1"/>

</bean>

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">

<property name="templateResolver" ref="fileTemplateResolver"/>

<property name="templateResolvers">

<list>

<ref bean="templateResolver"/>

</list>

</property>

回答:

ThymeleafTemplatingService:

@Autowired private TemplateEngine templateEngine;

.....

String responseText = this.templateEngine.process(templateBean.getTemplateName(), templateBean.getContext());

AbstractTemplate.java:

public abstract class AbstractTemplate {

private final String templateName;

public AbstractTemplate(String templateName){

this.templateName=templateName;

}

public String getTemplateName() {

return templateName;

}

protected abstract HashMap<String, ?> getVariables();

public Context getContext(){

Context context = new Context();

for(Entry<String, ?> entry : getVariables().entrySet()){

context.setVariable(entry.getKey(), entry.getValue());

}

return context;

}

}

回答:

但是从我看来,您在语法上有一个非常简单的错误

<p th:text="${bean.field} + '!' + ${bean.field}">Static content</p>

正确的语法看起来像

<p th:text="${bean.field + '!' + bean.field}">Static content</p>

实际上,语法th:text="'static part' + ${bean.field}"等于th:text="${'static part' +

bean.field}"

试试看。即使这在6个月后现在可能毫无用处。

以上是 Thymeleaf:串联-无法解析为表达式 的全部内容, 来源链接: utcz.com/qa/403666.html

回到顶部