什么是用于thymleaf的TemplateResolver.setOrder用户?

时间:2018-04-27 05:11:30

标签: java spring-mvc spring-boot thymeleaf

我正在使用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.

如果我没有提供此值,会发生什么?

1 个答案:

答案 0 :(得分:1)

您的应用可能会使用不同类型的模板,例如HTML, TXT or String等。这些模板解析器可能有多种类型。可以使用template engine注册这些多个模板解析程序。在有序链中执行的应用程序中的所有视图解析器,直到其中一个能够解析该视图。因此,TemplateResolver#setOrder基本上决定了链的顺序。有一个resolvablePatterns属性,用于确定模板解析器是否会考虑通过它来解析视图名称。您还可以设置resolvablePatterns setResolvablePatterns

templateResolver.setResolvablePatterns(Collections.singleton("text/*"));