【发布时间】:2019-04-18 18:48:24
【问题描述】:
我面临一个场景,我需要处理一个 HTML 模板 (index.html),该模板是通过 Thymeleaf TemplateEngine 和我的 Data POJO 从 ZIP 文件(通过 ZipInputStream)解压缩的。 所以我现在拥有的是解压后的模板文件的 InputStream。 我相信TemplateResolver会帮我解决这个案子。
TemplateResolver 是一个通用实现,允许您指定自己的 IResourceResolver 实现,以任何您需要的方式获取输入流。您可以创建自己的资源解析器(实现 IResourceResolver)并将其设置为 TemplateResolver 实例。
如何完成这项任务?有什么见解吗?
// index.html is the byte[] here, 'resourceData'
InputStream fileinputStream = new ByteArrayInputStream(resourceData);
FileResourceResolver fileResourceResolver = new FileResourceResolver();
TemplateResolver resolver = new TemplateResolver();
resolver.setTemplateMode("XHTML");
resolver.setSuffix(".html");
resolver.setResourceResolver(fileResourceResolver);
TemplateEngine engine = new TemplateEngine();
engine.setTemplateResolver(resolver);
Context context = new Context(Locale.US);
context.setVariable("data", myDataPojo);
return engine.process("index", context);
【问题讨论】:
-
您使用的是 ThymeLeaf 2 还是 3?
-
现在是 3.0.11.RELEASE
标签: java thymeleaf inputstream template-engine