thymeleaf 3生成静态html文件

thymeleaf现在已经是spring boot官方推荐的模板引擎,3.0版本已经比之前的版本性能提升很多。

虽然thymeleaf模板本省就是html文件,但有时候需要生成渲染好的html用于静态化和加速访问,这时就需要使用thymeleaf提供的TemplateEngine来进行渲染和生成。

创建TemplateEngine,然后配置视图的解析器即可,由于TemplateEngine的创建和配置消耗资源,创建一个实例即可。

 ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
 resolver.setPrefix( "/web/" );
 resolver.setSuffix( ".html" );
 TemplateEngine templateEngine = new TemplateEngine();
 templateEngine.setTemplateResolver( resolver );

解析器其实就是mvc中视图的配置。

然后创建context(需要绑定到页面的数据):

  • Context  标准的数据,mvc中的绑定到页面的普通数据;
  • WebContext  含上下文的数据,创建的时候需要传入HttpServletRequest 和 HttpServletResponse ServeltContext,这样就绑定了请求中的session等数据
final IContext ctx = new WebContext(request, response, servletContext);
ctx.setVariable("allItems", items);

执行会有两种主要的方式,一种是传入一个Writer,另一种是不传入,返回String。Writer可以写入文件,也可以写入输出流中。

final String result = templateEngine.process("mytemplate", ctx);
templateEngine.process("mytemplate", ctx, httpServletResponse.getWriter());

第一个参数就是配置模板引擎中路径下的模板,第二个就是数据Context,第三个可选Writer

=================================

based on the offical api docs : http://www.thymeleaf.org/apidocs/thymeleaf/3.0.7.RELEASE/org/thymeleaf/TemplateEngine.html

  
BugHome版权所有丨转载请注明出处:https://minei.me/archives/235.html
  

发表评论

电子邮件地址不会被公开。 必填项已用*标注