java - TemplateResolver.set Order user 在 thymeleaf 中的作用是什么?

标签 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.

如果我不提供此值会发生什么?

最佳答案

您的应用程序可能使用不同类型的模板,例如 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/

相关文章:

java - 从 ObjectPropertyAssertion OWLAPI 获取注释

java - Spring 3 Web 请求拦截器——如何获取 BindingResult?

java - 模拟resttemplate来测试作为restFul客户端的服务

java - Spring Boot 本地化问题 - Accept-Language header

java - Jackson 解析 JSON

java - Maven 包括旧版本的依赖项

java - 在 Cucumber 中,您如何迭代多个区域设置的功能?

java - JsonMappingException : Can not construct instance of CommonsMultipartFile

java.lang.LinkageError : loader constraint violation for Spring MVC and Thymeleaf

java - gradle bootRun成功启动,但一段时间后断开连接