我正在使用SpringBoot和thymeleaf从html模板生成文档。
随着模板的不断变化,我希望ti从外部加载模板,只是从外部添加或删除模板,而不是重新部署应用程序。
作为POC,使用/resources文件夹时效果良好。
这就是错误:
解析模板“凭证”时出错,该模板可能不存在,或者任何已配置的模板解析程序都无法访问该模板
这就是背景:
applycation.yml
spring:
thymeleaf:
prefix: file:///${PARAMETERS_DIRECTORY_TEMPLATES:/home/app/templates/}
check-template-location: true
suffix=: .html
mode: HTML
encoding: UTF-8
这是我的方法:其中templateName是模板文件名,parameters只是一个映射,它具有要由引擎替换的值。
@Override
public String buildHtmlFromTemplate(String templateName, Map<String, String> parameters) {
TemplateEngine templateEngine = new TemplateEngine();
FileTemplateResolver templateResolver = new FileTemplateResolver ();
templateResolver.setOrder(templateEngine.getTemplateResolvers().size());
templateResolver.setCacheable(false);
templateResolver.setCheckExistence(true);
templateEngine.setTemplateResolver(templateResolver);
return templateEngine.process(templateName, this.resolveHtmlTemplateAttributesContext(parameters));
}
注意:我删除了applycation yml thymeleaf配置并实现了下一个代码,但错误仍然存在。
@Override
public String buildHtmlFromTemplate(String templateName, Map<String, String> parameters) {
TemplateEngine templateEngine = new TemplateEngine();
FileTemplateResolver templateResolver = new FileTemplateResolver ();
templateResolver.setPrefix("/home/skeeter/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML");
templateResolver.setOrder(templateEngine.getTemplateResolvers().size());
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCacheable(false);
templateResolver.setCheckExistence(true);
templateEngine.setTemplateResolver(templateResolver);
return templateEngine.process(templateName, this.resolveHtmlTemplateAttributesContext(parameters));
}
0
奇怪的是,使用这个代码和用sudo创建的/usr/app/templates解决了这个问题。我认为这只是一个权限问题
.....
@Value("${parameters.directory.templates}")
private String templatesDirectory;
.....
@Override
public String buildHtmlFromTemplate(String templateName, Map<String, String> parameters) {
TemplateEngine templateEngine = new TemplateEngine();
FileTemplateResolver templateResolver = new FileTemplateResolver ();
templateResolver.setPrefix(templatesDirectory);
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("HTML");
templateResolver.setOrder(templateEngine.getTemplateResolvers().size());
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setCacheable(false);
templateResolver.setCheckExistence(true);
templateEngine.setTemplateResolver(templateResolver);
return templateEngine.process(templateName, this.resolveHtmlTemplateAttributesContext(parameters));
}
实际开发中,大多数项目,通常是3D美术设计师或建筑、机械等行业工程师提供的由3dmx、blender、substence、Solidworks等软件创建好的三维模型文件。 本章节第一小节以Threejs引擎自身为例,讲解Threejs模型导入导出,该小节对Threejs模型文件本身进行了讲解,让你明白你加载的三维模型文件里面都是包含什么内容。其它章节展示了一些加载外部不同格式模型的案例,除了讲解实
我使用Spring Initilizr创建了一个Spring启动应用程序。然后我加入了Apache的Freemarker模板引擎,从我的项目中加载模板。默认情况下,引擎从以下文件夹加载模板:文件夹。 我正在尝试加载一个简单的用户访问网页时作为模板的文件。但是我需要从文件夹加载模板。每当我尝试从文件夹外部加载模板时,模板引擎都无法找到模板。 我已经阅读了各种教程和堆栈溢出问题。没有人回答我的问题,我
问题内容: 我的项目具有以下结构: 我有一个文件,我想从单元测试中加载文件 我有此代码不起作用。它抱怨“没有这样的文件或目录”。 我也试过了 这也不起作用。它返回。我正在使用Maven构建我的项目。 问题答案: 尝试下一个: 如果上述方法不起作用,则已在以下类中添加了各种项目:1(代码在此处)。 以下是有关如何使用该类的一些示例:
我是一个相当新的java程序员。我只有大约五周的经验,从零开始,如果在Scene Builder中创建的javafx fxml文件与controller类不在同一个文件夹中,我就会遇到问题,无法正确加载这些文件。 我正在使用 我试着自己研究这个问题,但我没有得到太多,这里的几个答案似乎相似,似乎没有帮助,或者我太密集和/或没有经验,弄不明白它们的意义。它们是JavaFX2.0加载带有事件处理程序的
我正在开发一个Spring Boot应用程序。我想提供一个(相当初级的)插件系统。最初,我希望只将JAR添加到类路径中就足够了,如下所示: 此外,如果我尝试在插件控制器中一个JpaRepository,它会失败,因为它找不到存储库接口类(我猜这是因为我乱弄类加载器引起的问题)。 不过,在我的主应用程序中自动创建存储库就可以很好地工作,因此它的配置不应该是一个问题。 是不是我做错了什么?我是否可以配
我在maven项目的src/main/resource文件夹中下载了.sh文件,我正在通过下面的代码阅读它 如果我使用jar EX作为应用程序运行:- java-jar runscript.jar SCHEMA_NAME /users/ideaprojects/runscript/target/file:/users/ideaprojects/runscript/target/runscripts