ClassLoaderTemplateResolver 的用法
现在开发都是前后端分离,上次用模板引擎应该是用Golang自带的 template/html
这个库,thymeleaf
是Java中第一梯队的模板引擎,不过现在我用来做发送邮件的模板渲染引擎。
要使用thymeleaf
需要配置ITemplateResolver
,ClassLoaderTemplateResolver
是常用的实现,表示在程序的资源目录里面查找。
final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setResolvablePatterns(Collections.singleton("email/*"));
templateResolver.setPrefix("/template/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCacheable(false);
参数都比较好理解,setTemplateMode
告诉模板引擎使用HTML
语法,设置编码为UTF-8
,并且不缓存内容。前面三个参数用来告诉模板引擎如何匹配和查找资源,先匹配路径,路径符合了再查找资源。调用的代码:
Context ctx = new Context();
String content = templateEngine.process("email/test.html", ctx);
模板引擎先拿字符串 email/test.html
与 email/*
比较符合要求,并且文件名是.html
,最后拼接上前缀/template/
得到完整的路径/template/email/test.html
,在项目里面对应的文件则为:
src/main/resources/template/email/test.html