FreeMarker模板使用小结

  手册写的不错,忘记的时候可以翻翻n(*≧▽≦*)n

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

  1.插值--通用

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

  2.插值结合运算符

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

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

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

    比如:

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

    又或者:

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

    特别提示:

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

  3.内置函数   

      html :字符串中所有的特殊 HTML 字符都需要用实体引用来代替(比如 < 代替 &lt; )
      trim :去掉字符串前后的空白字符
      size : 序列(seqlist)中元素的个数
      string :指定格式,常用日期
      例子:

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!

转载于:https://www.cnblogs.com/anniey/p/7239004.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值