FreeMarker

常用于使用FreeMarker + Minio作为项目中的带格式的大文本解决方案

  1. 引入FreeMarker依赖
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
  1. 修改配置文件
server:
  port: 8881 #服务端口
spring:
  application:
    name: freemarker-demo #指定服务名
  freemarker:
    cache: false  #关闭模板缓存,方便测试
    settings:
      template_update_delay: 0 #检查模板更新延迟时间,设置为0表示立即检查,如果时间大于0会有缓存不方便进行模板测试
    suffix: .ftl               #指定Freemarker模板文件的后缀名
  1. 在resource下编写ftl模板文件
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Hello World!</title>
</head>
<body>
<b>普通文本 String 展示:</b><br><br>
Hello ${name} <br>
<hr>
<b>对象Student中的数据展示:</b><br/>
姓名:${stu.name}<br/>
年龄:${stu.age}
<hr>
</body>
</html>
  1. 编写接口进行测试
    需要注意
    @RestController包括@Controller+@ResponseBody注解
    要想返回到相应的视图,不能加@ResponseBody注解所以此处仅使用@Controller

只需要将值丢进model的属性中即可

@Controller
public class HelloController {

    @GetMapping("/basic")
    public String test(Model model) {


        //1.纯文本形式的参数
        model.addAttribute("name", "freemarker");
        //2.实体类相关的参数
        
        Student student = new Student();
        student.setName("小明");
        student.setAge(18);
        model.addAttribute("stu", student);

        return "01-basic";
    }
}
  1. 测试
    在这里插入图片描述

6. FreeMarker语法

6.1 list遍历语法

使用<#list students as student></#list>来遍历集合
得到的student对象就是其中的item
在插值语法插入Date类型的时候会报错
这里可以使用string函数来转化为想要的格式
使用 ${student_index}可以获得遍历的索引

${student.birthday?string("yyyy.MM.dd")}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>${name}</title>
</head>
<body>
<table>
    <tr>
        <td>
            序号
        </td>
        <td>
            姓名
        </td>
        <td>
            年龄
        </td>
        <td>
            生日
        </td>
        <td>
            钱包
        </td>
    </tr>
    <#list students as student>
        <tr>
            <td>
                ${student_index + 1}
            </td>
            <td>
                ${student.name}
            </td>

            <td>
                ${student.age}
            </td>

            <td>
                ${student.birthday?string("yyyy.MM.dd")}
            </td>

            <td>
                ${student.money}
            </td>

        </tr>
    </#list>
</table>
</body>
</html>
6.2 map遍历语法

map的语法主要是两种方式
方式一:通过map[‘keyname’].property
方式二:通过map.keyname.property

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>${name}</title>
</head>
<body>
<table>
    <h2>${studentMap1.title}</h2>
    <tr>
        <td>
            序号
        </td>
        <td>
            姓名
        </td>
        <td>
            年龄
        </td>
        <td>
            生日
        </td>
        <td>
            钱包
        </td>
    </tr>
    <#list studentMap2["studentList"] as student>
        <tr>
            <td>
                ${student_index + 1}
            </td>
            <td>
                ${student.name}
            </td>

            <td>
                ${student.age}
            </td>

            <td>
                ${student.birthday?string("yyyy.MM.dd")}
            </td>

            <td>
                ${student.money}
            </td>
        </tr>
    </#list>
</table>
</body>
</html>
6.3 if语法

if语法使用<#if>标签,在两个if标签中间还可以添<#else>标签
demo:如果是小红就变红

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>hello</title>
</head>
<body>
<table>

    <tr>
        <td>
            序号
        </td>
        <td>
            姓名
        </td>
        <td>
            年龄
        </td>
        <td>
            生日
        </td>
        <td>
            钱包
        </td>
    </tr>
    <#list students as student>
        <#if student.name=="小红">
            <tr style="color: red">
                <td>
                    ${student_index + 1}
                </td>
                <td>
                    ${student.name}
                </td>

                <td>
                    ${student.age}
                </td>

                <td>
                    ${student.birthday?string("yyyy.MM.dd")}
                </td>

                <td>
                    ${student.money}
                </td>
            </tr>
          <#else>
            <tr>
                <td>
                    ${student_index + 1}
                </td>
                <td>
                    ${student.name}
                </td>

                <td>
                    ${student.age}
                </td>

                <td>
                    ${student.birthday?string("yyyy.MM.dd")}
                </td>

                <td>
                    ${student.money}
                </td>
            </tr>
        </#if>


    </#list>
</table>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YonChao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值