【问题标题】:Getting resolved thymeleaf template得到解决的百里香模板
【发布时间】:2018-06-05 15:38:26
【问题描述】:

我正在尝试解析一个 thymeleaf 模板,但是作为 process() 方法的返回,我得到了模板的名称。我想获取原始 html 代码以将其存储在数据层中以供将来使用。

@Override
public String process(String template, Map<String, Object> model) {

    String process = templateEngine.process(template, new Context(config.getLocale(), model));
    return process;
}

我尝试使用所有解析器,但它们的工作方式都相同。有没有什么办法可以做到这一点,而无需将 html 文件作为字符串读取并解析目标模式?

【问题讨论】:

    标签: java spring thymeleaf


    【解决方案1】:

    您可以将模板配置为 RAW (More info about Template Mode)。

    例如在@Configuration 类中定义这个:

    @Configuration
    public class ThymeleafConfig {
      
        @Bean(name = "rawTemplateEngine")
        public TemplateEngine rawTemplateEngine() {
            TemplateEngine templateEngine = new TemplateEngine();
            templateEngine.addTemplateResolver(rawTemplateResolver());
            return templateEngine;
        }
        
        private ITemplateResolver rawTemplateResolver() {
            ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
            templateResolver.setPrefix("/templates/"); //or whatever other directory you have the files
            templateResolver.setSuffix(".html");       //if they are html files
            templateResolver.setTemplateMode(TemplateMode.RAW);
            templateResolver.setForceTemplateMode(true); //to turn off suffix-based choosing
            templateResolver.setCharacterEncoding("UTF8");
            templateResolver.setCheckExistence(true);
            return templateResolver;
        }
      }
    

    请注意,如果没有setForceTemplateMode,智能模板模式分辨率将覆盖setTemplateMode (Info about smart template resolution)。

    然后,在你需要这个 bean 的类中,自动装配它:

    @Autowired
    @Qualifier("rawTemplateEngine")
    TemplateEngine templateEngineRaw;
    

    然后调用:

    String process = templateEngineRaw.process(template, new Context(config.getLocale()));
    

    【讨论】:

      猜你喜欢
      • 2015-11-29
      • 2013-02-03
      • 2020-11-28
      • 2015-06-01
      • 2019-12-19
      • 2019-03-17
      • 1970-01-01
      • 2018-03-25
      • 2020-02-05
      相关资源
      最近更新 更多