Spring Boot整合Freemarker

欢迎浏览我的博客 获取更多精彩文章

https://boyn.top

Spring Boot整合Freemarker

Spring Boot加入Freemarker依赖

在maven中加入依赖

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

Spring Boot文件配置Freemarker

在FreeMarkerProperties类里面,我们可以看到常用的freemarker配置

此处选一些常用的来说

  • String DEFAULT_TEMPLATE_LOADER_PATH = "classpath:/templates/";
    //这个是选择默认的freemarker模板加载路径,默认是在/templates文件夹下面,在springboot项目中一般是resources/templates文件夹
    
  • String DEFAULT_PREFIX = "";
    //默认前缀,默认值为空,建议不动
    
  • String DEFAULT_SUFFIX = ".ftl";
    //默认后缀,即文件扩展名,为ftl,建议不动
    
  • String[] templateLoaderPath = new String[] { DEFAULT_TEMPLATE_LOADER_PATH };
    //默认模板加载路径集,我们可以指定多个模板加载的路径
    

Freemarker常用指令

if语句

if指令是用来判断条件是否成立的.

其语法如下

<#if contition>

<#elseif contition>

<#else>

</#if>

在这里需要注意的是,elseif中间跟java语法不一样,是没有空格的

我们实际演示一下

@GetMapping("/user")
    public String getUser(Model model){
        List<User> users = new ArrayList<>(10);
        for (int i = 0; i < 10; i++) {
            User u = new User(i,"Boyn"+i,"password"+i, new Random().nextInt(3));
            users.add(u);
        }
        model.addAttribute("users", users);
        return "user";
    }

这里是一个User的Controller

	<#list users as u>
        <tr>
            <td>${u.id}</td>
            <td>${u.username}</td>
            <td>${u.password}</td>
            <td>
                <#if u.gender==1>
                    男
                <#elseif u.gender==2>
                    女
                <#else>
                    其他
                </#if>
            </td>
        </tr>
    </#list>

这里是一段.ftl文件

接下来我们看看会有什么效果

效果图如上

switch case语句

这个语句和if作用相同.如果将刚刚的例子转换成switch语句表示,则如下:

				<#switch u.gender>
                    <#case 1><#break >
                    <#case 2><#break >
                    <#default >其他<#break >
                </#switch>

list break语句

list是一个迭代输出的语句,用于输出数据模型中的集合元素.其语法如下

<#list collection as item>

</#list>

其中和java中的循环一样,也可以在里面加入条件判断及时退出

<#list collection as item>

​ <#if contition><#break></#if>

</#list>

实际演示在if语句的代码中已经包含,不再赘述

include语句

include语句用于加入模板文件,如头部,尾部文件等.

语法如下

<#include filename [options]>

options设置中有encoding和parse两个选项,encoding指定编码类型,parse选择是否以freemarker解析器进行解析,如为false,则当作普通的html,默认为true

我们先创建一个header文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>标题</title>
</head>
<body>
<h1>个人博客 boyn.top</h1>
</body>
</html>

此时这两个文件在同一个目录下

我们在user.ftl的body开始处,加入include语句

<body>
<#include "./header.ftl">

其效果如下:

在这里插入图片描述

noparse语句

包含在noparse标签里面的语句不会进行解析,即当作普通文本

<#noparse>

</#noparse>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值