Я сталкиваюсь со сценарием, в котором мне нужно обработать шаблон HTML (index.html), который распаковывается из ZIP-файла (через ZipInputStream) через Thymeleaf TemplateEngine с моим POJO данных.
Итак, сейчас у меня есть 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);