FreeMarker模板使用小结

  手册写的不错,忘记的时候能够翻翻n(*≧▽≦*)nhtml

--------------------------------------------分割线--------------------------------------------spring

  1.插值--通用

1 <div>${expr}</div>

  2.插值结合运算符

    为了处理缺失变量,FreeMarker提供了两个运算符: (用于防止对象不存在而致使的异常报错 )数组

    ! : 指定缺失变量的默认值 jsp

    ?? : 判断某个变量是否存在,返回boolean值函数

    好比:spa

1 <#if item??>
2     <div>${item}</div>
3 </#if>

    又或者:code

1     <#if (item.name)??>
2         <div>${item.name!'admin'}</div>
3     </#if>

    特别提示:htm

     <#if (item.name)??></#if> 与 <#if item.name??></#if>是不同的哦,前者判断item和name是否为空,然后者指判断name是否为空!对象

  3.内置函数   

      html :字符串中全部的特殊 HTML 字符都须要用实体引用来代替(好比 < 代替 &lt; )
      trim :去掉字符串先后的空白字符
      size : 序列(seqlist)中元素的个数
      string :指定格式,经常使用日期
      例子:blog

1 ${item.date?string('yyyy-MM-dd HH:mm:ss')} //日期格式
2 ${item?string.number} //数字格式
3 ${item.money!?string("0.00")} 元  //金钱格式

      ?html 用于将字符串中可能包含的html字符,进行过滤.

  4.对象的使用  

    obj.Map()
    使用{}包住,以成对的键值存在;
    能够混合使用.和[""],例如item.stu['name'];

  5.逻辑判断    

    <#if condition>...     

    <#elseif condition2>...
    <#else>...

  6.列表循环

1     <#list items as item>
2         ${item}
3      </#list>

    item_index为当前变量的索引值,从0开始
    item_has_next是否存在下一个对象(来辨别当前项是不是序列的最后一项的布尔值)

    手册示例:

1 <#assign seqlist=["spring","summer","autumn","winner"]>;
2     <#list seqlist as item>
3         ${item_index + 1}.${item} <#if item_has_next>,</#if>
4     </#list>

    结果是按数组顺序输出!

  7.assign指令建立

    <#assign num=1 > (建立变量num)
    <#assign num=num+1 > (替换变量num)
    能够在任何地方使用访问

  8.空值(或不存在)变量的判断     

    <#if item.name??></#if> (询问变量是否存在)
    ${user!"Anonymous"} 或者 ${user!}(指定默认)

    特别注意几点:
    FreeMarker模板语言没有null关键字,因此不能判断变量是否为Null;
    FreeMarker 不能容忍引用不存在的变量,除非明确地告诉它当变量不存在时如何处理;
    不存在的变量和一个值为null的变量,是同样的。

  9.特殊字符

         \r 回车
        \n 换行
        \" 双引号
        \' 单引号
        \t Tab
        \b 退格键
        \\ 反斜杠
    注意**
        >  gt
        >= gte
        <  lt
        <= lte        

  10.include 导入其余页面

<#include "../header.html" />

    插入另一个指定路径的 FreeMarker 模板文件,输出格式是在include标签出现的地方插入;

    区分:

<@include_page path="../header.html"/> 

      会开始一个独立的 HTTP 请求处理,通常不用;

    JSP写法:

<jsp:include page="path/to/some.jsp"> 

--------------------------------------------分割线-------------------------------------------- 上面总结的都是我平时用到的一些指令语法等内容,其余没有用到的我就暂时没有放上来,之后会继续补充哒n(*≧▽≦*)n!

相关文章
相关标签/搜索