关于freemarker中的模板文件路径

关于freemarker中的模板文件路径

FreeMarkerViewResolver的prefix属性与FreeMarkerConfigurer的templateLoaderPath属性如何区分和使用?

    <bean id="ViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
        <property name="prefix" value="/WEB-INF/ftl"/>
    </bean>
    <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
        <property name="templateLoaderPath" value="/WEB-INF/ftl"/>
    </bean>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,1、 FreeMarkerViewResolver 的 prefix 属性和 FreeMarkerConfigurer 的 templateLoaderPath 属性在功能上是有所区别的。prefix 属性主要用于定义视图名称到模板文件路径的映射规则,而 templateLoaderPath 属性则主要用于定义模板文件的加载路径。

    2、FreeMarkerViewResolver 是 Spring 的视图解析器,它负责将逻辑视图名称解析为实际的 FreeMarker 模板文件路径。prefix 属性它定义了模板文件路径的前缀。例如,如果 prefix 被设置为 "/WEB-INF/ftl/",并且逻辑视图名称是 "home",那么实际的模板文件路径就是 "/WEB-INF/ftl/home.ftl"。

    3、FreeMarkerConfigurer 是 Spring 的 FreeMarker 配置类,它用于配置 FreeMarker 的相关参数,如:模板加载路径、模板编码等。templateLoaderPath 属性它定义了模板文件的加载路径。这个路径可以是文件系统中的路径,也可以是类路径下的路径。例如,如果 templateLoaderPath 被设置为 "/WEB-INF/ftl",那么 FreeMarker 就会从类路径下的 "/WEB-INF/ftl" 目录加载模板文件。

祝学习愉快!

  • 坨坨儿 提问者 #1

    这两个路径是否有某种包含关系,其实我也是这么理解的,但是实际去配置时,会发现报错提示找不到路径

    2024-03-25 10:30:49
  • 坨坨儿 提问者 #2

    已经解决了

    2024-03-25 10:45:12
  • 好帮手慕小尤 回复 提问者 坨坨儿 #3

    同学你好,1、根据我们这边的了解,这两个配置一般配置一个就可以了,通常情况下FreeMarkerConfigurer会默认配置Configuration对象来直接加载指定路径下的模板文件。当配置prefix 时,可能没有成功解析导致404异常。

    2、两个配置是否存在包含关系,这边老师不是很了解,同学感兴趣的话可以扒一下底层代码。

    祝学习愉快!

    2024-03-25 11:22:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java工程师 2024版
  • 参与学习       2020    人
  • 提交作业       1249    份
  • 解答问题       1202    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师