温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何在SpringBoot+Freemarker中获取项目根目录

发布时间:2022-03-04 14:37:40 来源:亿速云 阅读:479 作者:小新 栏目:开发技术

这篇文章给大家分享的是有关如何在SpringBoot+Freemarker中获取项目根目录的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在Freemarker中获取项目根目录

好多人 都说:

在配置文件中加入

spring.freemarker.request-context-attribute=request

在页面就可以

<#assign ctx=request.contextPath />

但是发现前台依然为 null(可能是我的配置有问题)

后来发现可以这样使用

<#assign ctx=springMacroRequestContext.contextPath />

不需要多余的配置

如何在SpringBoot+Freemarker中获取项目根目录

如何在SpringBoot+Freemarker中获取项目根目录

Freemark模板引擎路径的几种设置方法

在SpringMVC中我们想返回视图是怎么做的

(1)SpringMVC中当我们想解析jsp视图的时候需要在spring.xml中有如下的配置

如何在SpringBoot+Freemarker中获取项目根目录

在SpringBoot中springboot不推荐我们使用jsp模板

向我们提供了freemark模板模板引擎来解析视图

1.在SpringBoot中如果我们没进行任何配置那么我们只需要在resources目录下创建一个templates文件夹举个例子。

(1).创建一个Controller类返回名称为first的视图

如何在SpringBoot+Freemarker中获取项目根目录

(2).在resource目录下创建一个名为first.ftl的文件(SpringBoot默认解析文件类型为ftl的文件)

如何在SpringBoot+Freemarker中获取项目根目录

(3)first.ftl中的内容

如何在SpringBoot+Freemarker中获取项目根目录

(4)请求结果

如何在SpringBoot+Freemarker中获取项目根目录

从上面的结果可以看出freemark为我们完成了视图解析

那么如果我们如何自定义freemark的模板引擎路径呢

有两种方式

第一种方式:

1.在resource目录下创建一个application.properties文件,SpringBoot在启动加载时会找到resource目录下的

application.properties文件,代码如下

如何在SpringBoot+Freemarker中获取项目根目录

(1)这里划红线的俩个点是需要注意的,对于suffix我们应该非常熟悉因为在之前配置jsp视图解析器的时候就用到过,是视图解析的文件类型(springboot中默认的解析文件类型是ftl,而我们将文件类型更改为fid格式)

(2)template-loader-parh也不难理解就是配置解析视图的路径

(3)目录结构

如何在SpringBoot+Freemarker中获取项目根目录

2.application.properties配置完成后我们看一下效果

如何在SpringBoot+Freemarker中获取项目根目录

以上就是如何通过application.properties配置修改freemark返回路径

第二种方式:

1.创建Java类继承WebMvcConfigurerAdapter

代码如下

如何在SpringBoot+Freemarker中获取项目根目录 如何在SpringBoot+Freemarker中获取项目根目录

目录结构

如何在SpringBoot+Freemarker中获取项目根目录

运行结果

如何在SpringBoot+Freemarker中获取项目根目录

以上就是通过俩种方式配置freemark返回路径

ps:在反复测试freemark返回路径的过程中发现了很有意思的几点感兴趣的可以深入研究一下

(1)springboot如果没配置application.properties文件或者没创建工作类的时候我们都知道默认返回ftl格式文件,但是如果我们通过工具类改变freemark路径我们会发现,虽然我们配置了返回fap类型的文件,但是当我们把fap改成ftl文件之后,freemark仍然可以解析

(2)通过application.properties文件改变freemark返回路径的话,只能解析application.properties设置的文件类型,ftl是无效的

(3)如果同时加载application.properties文件和工具类的话,工具类的权重比较高,freemark会返回工具类中的配置,但是在第一点我说过如果光使用工具类的话freemark是可以返回ftl格式文件的,但是如果application.properties文件和工具类都进行启动的话ftl就无效了

感谢各位的阅读!关于“如何在SpringBoot+Freemarker中获取项目根目录”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI