FreeMarker页面基础展示

依赖:

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

后端:(准备数据,用Map或Model存储数据;和thymeleaf一样)

@RequestMapping("/test")
    public String freemarker(Map<String, Object> map){
        //向数据模型放数据
        map.put("name","黑马程序员");
        Student stu1 = new Student();
        stu1.setName("小明");
        stu1.setAge(18);
        stu1.setMoney(1000.86f);
        stu1.setBirthday(new Date());
        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setMoney(200.1f);
        stu2.setAge(19);
        stu2.setBirthday(new Date());
        List<Student> friends = new ArrayList<>();
        friends.add(stu1);
        stu2.setFriends(friends);
        stu2.setBestFriend(stu1);
        List<Student> stus = new ArrayList<>();
        stus.add(stu1);
        stus.add(stu2);
		//向数据模型放数据
   	     map.put("stus",stus);
		//准备map数据
        HashMap<String, Student> stuMap = new HashMap<>();
        stuMap.put("stu1",stu1);
        stuMap.put("stu2",stu2);
		//向数据模型放数据
        map.put("stu1",stu1);
		//向数据模型放数据
        map.put("stuMap",stuMap);
        map.put("point", 102920122);
        return "test1";
    }

前端:
FreeMarker的.Ftl 页面的头结构与html文件无异, ftl比html只不过是多了一个能解析.Ftl 标签的模板引擎

<!DOCTYPE html>
<>
<head>
    <meta charset="utf‐8">
    <title>Hello World!</title>
</head>
<body>
</body>

显示数据

Hello ${name}!

数组遍历

<table>
    <tr>
        <td>序号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>钱包</td>
        <td>生日</td>
    </tr>
    遍历数组
    <#list stus as stu>
        <tr>
            <td>${stu_index + 1}</td>
            <td>${stu.name}</td>
            <td>${stu.age}</td>
            <td>${stu.money}</td>
            <td>${stu.birthday?string("yyyy年MM月dd日")}</td>  日期类型这样显示
        </tr>
    </#list>
    <br/>
    list的大小:${stus?size}
</table>

注:对象的属性不是字符串类型的要转换成字符串或者特定内置函数转换才能显示
如 < td>${stu.birthday?string(“yyyy年MM月dd日”)}< /td>

显示年月日: $ {today?date}
显示时分秒:$ {today?time}
显示日期+时间:${today?datetime}
自定义格式化: ${today?string(“yyyy年MM月”)}

内置函数

${stus?size} 显示stus数组的数组大小
${point?c}  如果不加?c,输出是102,920,122; 加上?c作用是把它变成字符串

Map 遍历和 if标签:

遍历map 和 if
<#if stuMap??>  //检测stuMap是否存在,不存在返回flase, 反之true
    <#list stuMap?keys as k>
        <#if stuMap[k].name!='小明'><div>${k_index+1}--${stuMap[k].name!'姓名不存在哦'}</div> </#if>
        <div <#if stuMap[k].name!='小明'>style="color:yellow"</#if>>你好</div>
        <div <#if (stuMap[k].age>18)>style="color:yellow"</#if>>${stuMap[k].age!'年龄不存在哦'}</div>
        <div>${(stuMap[k].aaa)!'不存在哦'}</div> //检测stuMap[k].aaa是否存在,不存在用'不存在哦'代替
    </#list>

</#if>

将json字符串转换成json对象(很少用)

<#assign text="{'bank':'工商银行','account':'10101920201920212'}" /> 定义一个json字符串
<#assign data=text?eval /> eval:将json字符串转换成json对象
开户行:${data.bank} 账号:${data.account}
发布了86 篇原创文章 · 获赞 1 · 访问量 4337

猜你喜欢

转载自blog.csdn.net/qq_42039738/article/details/105169827