freemarker在SpringBoot下的使用以及出现的问题

可能真的因为本人足够菜…在这里踩了好大的坑…所以为了让大家少走弯路,特来给大家分享啦

没错,最开始第一步当然还是引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

注意这里不指定版本则与SpringBoot版本一致,以下为我的SpringBoot版本:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath/> 
</parent>

需要特别注意的是!!!SpringBoot2.2.2版下的freemarker源代码做了更新,以下请看:(为了简洁…只保留了属性部分,方法部分大家可以自行查看

public class FreeMarkerProperties extends AbstractTemplateViewResolverProperties {
    public static final String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
    public static final String DEFAULT_PREFIX = "";
    public static final String DEFAULT_SUFFIX = ".ftlh";
    private Map<String, String> settings = new HashMap();
    private String[] templateLoaderPath = new String[]{"classpath:/templates/"};
    private boolean preferFileSystemAccess = true;
  }

从以上属性值的初始化来看,suffix后缀改为了ftlh,意味着如果我们不指定,默认后缀就为ftlh(我在这里真的踩了好大一坑…
由于默认路径已经指定好了,如果我们的目录是以下结构,就不需要再进行设定了
在这里插入图片描述
因此,yml文件配置如下:

spring:
  freemarker:
    suffix: .ftl

配置好了依赖和yml文件之后,就可以来写代码啦,以下先介绍一个简单的例子:
真的没有更简单的例子了…我觉得没有了…
controller如下:

@RequestMapping(value = "/get",method = RequestMethod.GET)
public String get(){
    return "hello";
}

ftl文件如下

<h1>hello world</h1>

没错 还是万年hello world 而且ftl文件内部不需要加任何文件头呢…下面就是页面展示啦
在这里插入图片描述
到这里,SpringBoot与freemarker的整合就结束啦,有疑问或者出了问题的欢迎评论区O

发布了17 篇原创文章 · 获赞 12 · 访问量 8313

猜你喜欢

转载自blog.csdn.net/Sun_Dean/article/details/103903678