Je rencontre un problème lorsque j'essaie de concaténer plusieurs valeurs dans mon modèle. Selon Thymeleaf aquí Je devrais simplement être capable de les + ensemble...
4.6 CONCATÉNATION DE TEXTES
Les textes, qu'ils soient littéraux ou qu'ils résultent de l'évaluation d'une variable ou d'un message peuvent être facilement concaténés à l'aide de l'opérateur + :
th:text="'The name of the user is ' + ${user.name}"
Voici un exemple de ce que je trouve efficace :
<p th:text="${bean.field} + '!'">Static content</p>
Mais ce n'est pas le cas ici :
<p th:text="${bean.field} + '!' + ${bean.field}">Static content</p>
Logiquement, cela devrait fonctionner mais ce n'est pas le cas, qu'est-ce que je fais mal ?
Maven :
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
<version>2.0.16</version>
<scope>compile</scope>
</dependency>
Voici comment j'ai configuré mon TemplateEngine et mon 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;
}
}