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

 更新时间:2021-10-24 03:08:00   作者:佚名   我要评论(0)

目录在Freemarker中获取项目根目录Freemark模板引擎路径的几种设置方法在SpringMVC中我们想返回视图是怎么做的在SpringBoot中springboot不推

在Freemarker中获取项目根目录

好多人 都说:

在配置文件中加入

spring.freemarker.request-context-attribute=request

在页面就可以

<#assign ctx=request.contextPath />

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

后来发现可以这样使用

<#assign ctx=springMacroRequestContext.contextPath />

不需要多余的配置

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

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

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

这里写图片描述

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

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

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

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

这里写图片描述

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

这里写图片描述

(3)first.ftl中的内容

这里写图片描述

(4)请求结果

这里写图片描述

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

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

有两种方式

第一种方式:

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

application.properties文件,代码如下

这里写图片描述

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

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

(3)目录结构

这里写图片描述

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

这里写图片描述

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

第二种方式:

1.创建Java类继承WebMvcConfigurerAdapter

代码如下

这里写图片描述 这里写图片描述

目录结构

这里写图片描述

运行结果

这里写图片描述

以上就是通过俩种方式配置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就无效了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • spring boot加载freemarker模板路径的方法
  • 构建SpringBoot+MyBatis+Freemarker的项目详解
  • SpringBoot整合freemarker的讲解
  • Springboot整合Freemarker的实现详细过程

相关文章

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

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

    目录在Freemarker中获取项目根目录Freemark模板引擎路径的几种设置方法在SpringMVC中我们想返回视图是怎么做的在SpringBoot中springboot不推
    2021-10-24
  • Java面向对象之多态

    Java面向对象之多态

    目录一、前言二、什么是多态?三、多态的实现条件四、多态的访问特点1.我们建一个service包放Animal类2.再servic包下建一个impl包,包下放Ca
    2021-10-24
  • Java常用API类之Math System tostring用法详解

    Java常用API类之Math System tostring用法详解

    1.注意(类名不能与math重名,否则可能报错误) 1.math:可以直接拿来用的接口类 Math.abs(-90);返回参数的绝对值 Math.max(60,98)返回参数
    2021-10-24
  • Python干货实战之八音符酱小游戏全过程详解

    Python干货实战之八音符酱小游戏全过程详解

    目录导语&#127932;正文&#127932;&#127925;一、准备中1.1 游戏规则&#127926;1.2 素材图片&#127926;&#127925;二、环境2.1 小介绍&#127926;2.2
    2021-10-24
  • Java 面向对象之继承篇详解原理与特点

    Java 面向对象之继承篇详解原理与特点

    目录一、前言二、继承什么是继承呢?继承的好处与弊端继承的使用场景?继承的格式:继承的特点:重写的概念:super关键字super和this的比较一
    2021-10-24
  • 使用HTTPclient保持长连接

    使用HTTPclient保持长连接

    目录HTTPclient保持长连接首先解释一下什么是长连接如何在java中实现一个长连接呢httpclient因为保持永久长连接造成连接吊死的问题添加策略后
    2021-10-24
  • python 标准库原理与用法详解之os.path篇

    python 标准库原理与用法详解之os.path篇

    os中的path 查看源码会看到,在os.py中有这样几行 if 'posix' in _names: name = 'posix' linesep = '\n' from posix import
    2021-10-24
  • Java并发容器介绍

    Java并发容器介绍

    目录1、原子类2、锁3、并发容器4、List接口下5、Map接口下6、Set接口下7、Queue接口下Java并发包(concurrent)是Java用来处理并发问题的利器
    2021-10-24
  • python实现简单石头剪刀布游戏

    python实现简单石头剪刀布游戏

    前言: 相信大家在童年或者生活中都玩过石头剪刀布这个游戏,这个游戏需要两个及以上的人。而今天,网上也实现了石头剪刀布的游戏。通过初步
    2021-10-24
  • 关于python pygame游戏进行声音添加的技巧

    关于python pygame游戏进行声音添加的技巧

    目录一、启动mixer进程二、创建声音目录三、添加声音到 Pygame四、触发一个声音Pygame的mixer 模块可以依据命令播放一个或多个声音,并且也可
    2021-10-24

最新评论