可能真的因为本人足够菜…在这里踩了好大的坑…所以为了让大家少走弯路,特来给大家分享啦
没错,最开始第一步当然还是引入依赖
<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