我使用 Thymeleaf 作为我的电子邮件模板,我在谷歌上搜索并能够使用以下配置成功运行代码:-
@Configuration
public class TemplateEngineConfig {
@Autowired
private MailConfigProps mailConfigProps;
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.addTemplateResolver(templateResolver());
return templateEngine;
}
private TemplateResolver templateResolver() {
TemplateResolver resolver = new ClassLoaderTemplateResolver();
resolver.setPrefix(mailConfigProps.getTemplatePath());
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(1);
resolver.setCacheable(true);
return resolver;
}
}
除了 setOrder 之外,这里的所有内容对我来说都是可以理解的。我尝试在不同的地方查找它,我得到的唯一信息是“为链中的模板引擎设置新顺序。顺序应从 1 开始。”。
以下是文档的内容:
setOrder
public void setOrder(Integer order)
Sets a new order for the template engine in the chain. Order should start with 1.
Parameters:
order - the new order.
Can someone please share why `setOrder` is there and when should it be used in my application and what should be the appropriate values to be set in different scenarios.
如果我不提供此值会发生什么?
最佳答案
您的应用程序可能使用不同类型的模板,例如 HTML、TXT 或 String
等。这些模板可能有多种类型的模板解析器。这些多个模板解析器可以注册到模板引擎
。应用程序中的所有 View 解析器都在有序链中执行,直到其中一个能够解析该 View 。因此,TemplateResolver#setOrder 基本上决定了链的顺序。有一个 resolvablePatterns
属性,用于确定模板解析器是否考虑由其解析 View 名称。您还可以通过 setResolvablePatterns
resolvablePatterns
templateResolver.setResolvablePatterns(Collections.singleton("text/*"));
关于java - TemplateResolver.set Order user 在 thymeleaf 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055626/