Tôi đang gặp sự cố khi cố gắng nối nhiều giá trị trong mẫu của mình. Theo Thymeleaf ở đây tôi chỉ đơn giản là có thể + chúng cùng nhau ...
4.6 CÁC CHỈ TIÊU KẾT NỐI
Các văn bản, bất kể chúng là chữ hay là kết quả của việc đánh giá các biểu thức biến hoặc thông báo, đều có thể được nối dễ dàng bằng cách sử dụng toán tử +:
th:text="'The name of the user is ' + ${user.name}"
Đây là một ví dụ về những gì tôi thấy hoạt động:
<p th:text="${bean.field} + '!'">Static content</p>
Tuy nhiên, điều này không:
<p th:text="${bean.field} + '!' + ${bean.field}">Static content</p>
Về mặt logic, điều này sẽ hoạt động nhưng không phải, tôi đang làm gì sai?
Maven:
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
<version>2.0.16</version>
<scope>compile</scope>
</dependency>
Đây là cách tôi thiết lập TemplateEngine và TemplateResolver của mình:
<!-- 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;
}
}