gpt4 book ai didi

java - 自由标记 : read template from different path using class loader

转载 作者:行者123 更新时间:2023-11-30 07:16:47 27 4
gpt4 key购买 nike

我的 TemplateLoader 类位于路径 src/main/java 中我的模板文件位于 src/resources/template

当我尝试使用下面的代码加载模板时

Configuration config = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
config.setClassForTemplateLoading(this.getClass(), "/");

Template template = config.getTemplate( "resources/template/test.ftl");

它给出以下错误:

freemarker.template.TemplateNotFoundException: Template not found for name "resources/template/test.ftl".

文件位于正确的位置。那么我如何使用免费标记加载此文件?

最佳答案

问题是 resources只存在于你的源代码中(这是一个 Maven 的东西),但不存在于编译的项目中。所以应该是config.getTemplate( "template/test.ftl"); 。但是,如果您使用 config.setClassForTemplateLoading(this.getClass(), "/template"); 会更好。然后config.getTemplate( "test.ftl"); 。拥有模板根目录的目的是使实际位置透明,并防止模板包含并因此公开非模板的任意资源的安全问题。

关于java - 自由标记 : read template from different path using class loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38238420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com