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. 测试
    FreeMarker_第1张图片

6. FreeMarker语法

6.1 list遍历语法

使用<#list students as student>来遍历集合
得到的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>hellotitle>
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>

你可能感兴趣的:(java,spring,boot,开发语言)