黑马程序员技术交流社区

标题: 【哈尔滨校区】Freemarker的基本语法及入门基础 [打印本页]

作者: 624694683    时间: 2018-5-17 09:17
标题: 【哈尔滨校区】Freemarker的基本语法及入门基础
freemarker的基本语法及入门基础

一、freemarker模板文件(*.ftl)的基本组成部分
        1. 文本:直接输出的内容部分
        2. 注释:不会输出的内容,格式为<#--  注释内容  -->
        3. 取值(插值):代替输出数据模型的部分,格式为${数据模型}或#{数据模型}
        4. ftl指令:Freemarker指令,类似于HTML标记。
                             内建指令:开始标签:<#directivename parameter>       结束标签:</#directivename>      空标签:<#directivename parameter/>   
                             自定义指令:开始标签:<@directivename parameter>       结束标签:</@directivename>      空标签:<@directivename parameter/>
                             至于什么是内建指令,什么是自定义指令   我会在下面叙述到。



二、Freemarker语法及使用方法
        1. 取值(插值)指令及适用类型:
                (1) ${var}
                        适用类型:java中常用的八大基本类型以及我们的String引用类型,但是,freemarker中boolean类型显示时true==yes  false==no
                        示例:
                                在后台文件中定义变量
                                        String strVar = "世界你好";
                                        int intVar = 10;
                                        boolean booVar = true;
                                在页面中获取变量:
                                        String获取:<font color="red"> ${strVar} </font><br>
                                        int获取:<font color="red"> ${intVar} </font><br>
                                        boolean获取:<font color="red"> ${booVar?string("yes","no")} </font>
                                展示结果:
                                        String获取:世界你好
                                        int获取:10
                                        boolean获取:yes
                (2)${var!}
                        适用类型:对 null 或者不存在的对象进行取值,可以设置默认值,例:${var!'我是默认值'}    即,有值时显示正常值,无值时显示默认值
                        示例:
                                在后台文件中定义变量
                                        String strVar = "世界你好";
                                        String str = null;
                                在页面中获取变量:
                                        String获取:<font color="red"> ${strVar!"我是空"} </font><br>
                                        str获取:<font color="red"> ${str!} </font><br>
                                        str获取:<font color="red"> ${str!"默认"} </font><br>
                                展示结果:
                                        String获取:世界你好
                                        str获取:
                                        str获取:默认
                (3)${封装对象.属性}
                        适用类型:对封装对象进行取值,例:${User.name}
                        示例:
                                在后台文件中封装对象User[ name,  age ]
                                        String name = "姓名";
                                        int age = 18;
                                在页面中获取变量:
                                        name获取:<font color="red"> ${User.name} </font><br>
                                        age获取:<font color="red"> ${User.age} </font><br>
                                展示结果:
                                        name获取:姓名
                                        age获取:18
                (4)${date?String('yyyy-MM-dd')}
                        适用类型:对日期格式进行取值,在这里我要强调的是,定义Date类型的变量时,java.util.Date无法输出日期,须使用java.sql.Date
                        示例:
                                在后台文件中定义变量
                                        java.sql.Date date = new Date().getTime();
                                        java.sql.Date time = new Date().getTime();
                                        java.sql.Date datetime = new Date().getTime();
                                在页面中获取变量:
                                        date获取:<font color="red"> ${date?string('yyyy-MM-dd')} </font><br>
                                        time获取:<font color="red"> ${date?string('HH:mm:ss')} </font><br>
                                        datetime获取:<font color="red"> ${date?string('yyyy-MM-dd HH:mm:ss')} </font><br>
                                展示结果:
                                        name获取:姓名
                                        age获取:18
                (5)${var?html}
                        适用类型:转义HTML内容
                        示例:
                                在后台文件中封装变量Menu[ name, model ]
                                        Menu m = new Menu();
                                        m.setName(" freemarker ");
                                        m.setModel("<font color = 'red'>我只是个菜单</font>");
                                在页面中获取变量:
                                        非转义获取:<font color="red"> ${m.model} </font><br>
                                        转义获取: ${m.model?html} </font><br>
                                展示结果:
                                        非转义获取:我只是个菜单
                                        转义获取:<font color = 'red'>我只是个菜单</font>
                (6)<#assign num = 100 />
                        适用类型:定义变量,支持计算和赋值
                        示例:
                                在页面中定义变量:
                                        <#assign num = 100 />
                                        num获取:<font color="red"> ${num)} </font><br>
                                        计算结果:<font color="red"> ${num * 10} </font><br>
                                展示结果:
                                        num获取:100
                                        计算结果:1000
                (7)对List集合进行取值
                        <#list  list集合  as  item>
                               ${item}    --取值
                        </#list>
                        示例:
                                在后台文件中定义变量
                                        List<String> strList = new ArrayList<String>();
                                        strList.add("第一个值");
                                        strList.add("第二个值");
                                        strList.add("第三个值");
                                在页面中获取变量:
                                        <#list  strList  as  item>
                                               ${item!}<br/>    --取值
                                        </#list>
                                展示结果:
                                        第一个值
                                        第二个值
                                        第三个值
                (8)对Map集合进行取值
                        <#list map?keys as key>
                               ${key}:${map[key]}
                        </#list>
                        示例:
                                在后台文件中定义变量
                                        Map<String, Object> m = new HashMap<String, Object>();
                                        m.put("name","姓名");
                                        m.put("age",18);
                                        m.put("sex","男");
                                在页面中获取变量:
                                         <#list m?keys as key>
                                                ${key}:${m[key]}
                                         </#list>
                                展示结果:
                                        name:姓名
                                        age:18
                                        sex:男




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2