简体   繁体   English

如何防止Thyemleaf对模板进行urlencoding?

[英]How can I prevent Thyemleaf from urlencoding my template?

We have the following thymeleaf config: 我们有以下百里香配置:

    @Bean
    public TemplateEngine emailTemplateEngine() {
        final SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.addTemplateResolver(htmlTemplateResolver());
        templateEngine.addTemplateResolver(stringTemplateResolver());
        return templateEngine;
    }

    private ITemplateResolver htmlTemplateResolver() {
        final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setOrder(1);
        templateResolver.setResolvablePatterns(Collections.singleton("templates/*"));
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode(TemplateMode.HTML);
        templateResolver.setCharacterEncoding(StandardCharsets.UTF_8.name());
        templateResolver.setCacheable(false);
        return templateResolver;
    }

    private ITemplateResolver stringTemplateResolver() {
        final StringTemplateResolver templateResolver = new StringTemplateResolver();
        templateResolver.setOrder(2);
        templateResolver.setTemplateMode(TemplateMode.TEXT);
        templateResolver.setCacheable(false);
        return templateResolver;
    }

That is - two resolvers, one for html, one for text. 那就是-两个解析器,一个用于html,一个用于文本。

We use the html one for the body of our emails, the text one for the subject. 我们将html用作电子邮件的正文,将文本用作主题。

Given: 鉴于:

  • a subject "template" (a plain string) like this: "[[${values.createdBy}]] created a widget" 这样的主题“模板”(纯字符串): "[[${values.createdBy}]] created a widget"

  • a values.createdBy value of Brock O'Samson Brock O'Samsonvalues.createdBy

We are seeing the result: Brock O'Samson 我们正在看到结果: Brock O'Samson

Any ideas what to config? 任何想法要配置什么? The "template mode" seemed like the obvious solution, but it was already set to TEXT. “模板模式”似乎是显而易见的解决方案,但已将其设置为TEXT。

Two independent approaches: 两种独立的方法:

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM