当前位置: 首页 > 知识库问答 >
问题:

如何将spring.freemarker.template-loader-path指向依赖关系jar中的模板?

陈宜修
2023-03-14

我有2个项目。一个项目(A)包含我所有的核心功能,例如我的实体/服务/daos等。它还包含许多我希望在我的其他项目(B)中利用和重用的. ftl模板。我已经成功地让(B)使用(A)中的类,但我在重用freemarker模板方面没有运气。

项目(B)是一个Spring Boot应用程序(v2.1.3),因此我认为我使用该应用程序是正确的。属性:<代码>Spring。自由标记。模板加载程序路径,而不是定义新的Bean。

由于是一个Spring启动应用程序,默认情况下,如果没有此属性,项目将在项目自己的src/main/资源/模板位置中查找,但我的目标是让项目(A)没有自己的模板,并让我的控制器返回在项目(B)中找到的模板。

在我的Maven依赖关系中,层次结构如下:

projectA-0.0.1.jar
    templates
        folder1
            exampleA.ftl
        folder2
            exampleB.ftl

当前,我的控制器被设置为返回类似以下内容:return new ModelAndView(“folder1/exampleA”)其中上下文前缀为src/main/resources/templates/

有人知道我需要给spring.freemarker.template-loader-path属性的值的正确格式吗?

共有3个答案

凌照
2023-03-14

这对我没用。但这种方法确实有效:

    @Bean
    @Primary
    public FreeMarkerConfigurationFactoryBean getFreeMarkerConfiguration() throws IOException {
        FreeMarkerConfigurationFactoryBean bean = new FreeMarkerConfigurationFactoryBean();
        ClassTemplateLoader ctl = new ClassTemplateLoader(getClass(), "/templates");
        bean.setPostTemplateLoaders(ctl);
        return bean;
    }
薛淮晨
2023-03-14

设置为属性:

spring.freemarker.cache=false
spring.freemarker.template-loader-path=file:src/main/resources/templates/

为我工作。

太叔昊苍
2023-03-14

So<代码>Spring。自由标记。模板加载程序路径=classpath:/templates/是我最初问题的答案,但它并没有解决我的问题。

将以下Bean添加到我的config类did中,归功于@ddekany

<代码>@Bean public FreeMarkerConfigurationFactoryBean getFreeMarkerConfiguration(){FreeMarkerConfigurationFactoryBean=new FreeMarkerConfigurationFactoryBean();Bean.setTemplateLoaderPath(“类路径:/templates/”);return Bean;}

虽然我可以使用属性,但由于其他因素,在我的场景中需要一个Bean。

 类似资料:
  • 我想构建这个项目,以便最终的jar在一个jar文件中包含所有依赖项(如果不可能的话,包括从依赖项到jar文件的类),我遵循了线程Including dependencies in a jar with Maven,但它也包含了我在pom中甚至没有提到的依赖项。这是我的POM,它只有两个依赖项。 我想当Final构建时,它包括pom中提到的特定依赖项(以类或jar形式)

  • 问题内容: 我正在使用Spring 3和Hibernate 4 JPA。我对 javax.persistence JAR 感到困惑。我在Google上发现了以下两个Maven依赖项。请告诉我以下两个依赖项中需要哪个? 问题答案: 其中的第一个是API Jar,它定义了应用程序应使用的与供应商无关的接口。 第二个是该API的EclipseLink实现。 可以删除对第一个依赖项的引用,而只需使用Ecl

  • 如何将这个插件添加为依赖项和插件?我如何将此用作依赖项? 谢谢

  • 问题内容: 最近,我接受了用JSF编写的Web系统的支持和编程。代码有点凌乱和多余,是的,​​不存在任何文档。 该系统具有40多个jar库,由于旧版本和测试,其中大多数是冗余的。要删除一个jar,我必须检查它是否未在代码中导入,因此我在代码中搜索了jar导入路径(我正在使用IntelliJ IDE),确保未使用它,然后将其删除。 但是,在编译代码后,在测试过程中发生了许多运行时错误。我发现我删除了

  • Remove wrapper, open mouth, insert muffin, eat. — Instructions on 7-11 muffin packaging 为确保事物以正确的顺序发生,你可以在 Puppet 中指定一个资源依赖另一个资源, 例如:你必须先安装软件包 X 然后再启动它提供的服务,因此应该标记这项服务依赖于软件包 X。 Puppet 会按要求的顺序排出它遇到的所有依

  • 我目前正在尝试将一个通过RFC连接到SAP系统的旧Java EE解决方案迁移到Quarkus。由于项目使用maven,我再次面临sapjco3的问题。来自SAP的jar库,防止该库被重命名。如果我像那样添加库作为依赖项 它将被添加到lib目录中,名称为com.sap.sapjco3-3.1.jar.不幸的是,最终以异常结束 JAVAlang.ExceptionInInitializerError: