Ich habe ein Problem beim Versuch, mehrere Werte in meiner Vorlage zu verknüpfen. Laut Thymeleaf hier sollte ich einfach in der Lage sein, sie zusammen zu machen ...
4.6 KONKATENIERENDE TEXTE
Texte, unabhängig davon, ob es sich um Literale oder das Ergebnis der Auswertung von Variablen- oder Nachrichtenausdrücken handelt, können mit dem Operator + einfach verkettet werden:
th:text="'The name of the user is ' + ${user.name}"
Hier ist ein Beispiel für das, was ich gefunden habe:
<p th:text="${bean.field} + '!'">Static content</p>
Dies jedoch nicht:
<p th:text="${bean.field} + '!' + ${bean.field}">Static content</p>
Logischerweise sollte dies funktionieren, aber es ist nicht so, was mache ich falsch?
Maven:
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
<version>2.0.16</version>
<scope>compile</scope>
</dependency>
So habe ich meine TemplateEngine und TemplateResolver eingerichtet:
<!-- 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;
}
}