我正在尝试解析百万美元的模板,但是,作为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文件作为字符串读取并解析目标模式,有没有办法做到这一点?
答案 0 :(得分:0)
您可以将模板配置为 RAW
例如在@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.setCharacterEncoding("UTF8");
templateResolver.setCheckExistence(true);
return templateResolver;
}
}
然后,在你需要这个bean的类中,自动装载它
@Autowired
@Qualifier("rawTemplateEngine")
TemplateEngine templateEngineRaw;
然后致电
String process = templateEngineRaw.process(template, new Context(config.getLocale()));
请告诉我这是否适合您