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

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

  1.插值--通用

 <div>${expr}</div>

  2.插值结合运算符

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

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

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

    比如:

 <#if item??>
<div>${item}</div>
</#if>

    又或者:

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

    特别提示:

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

  3.内置函数   

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

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

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

  4.对象的使用  

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

  5.逻辑判断    

    <#if condition>...     

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

  6.列表循环

     <#list items as item>
${item}
</#list>

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

    手册示例:

 <#assign seqlist=["spring","summer","autumn","winner"]>;
<#list seqlist as item>
${item_index + 1}.${item} <#if item_has_next>,</#if>
</#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!

最新文章

  1. 微信h5页面禁止下拉露出网页来源
  2. Java中的内部接口
  3. Cache-Aside Pattern解析
  4. NEWS - InstallShield 2014正式发布
  5. Orchard 刨析:Logging
  6. 作业三--Linux内核分析
  7. jdk jre jvm 关系
  8. navicat 随笔提示的快捷键
  9. mysql基本介绍
  10. Hotel(线段树合并)
  11. 总结:js中4类修改样式的方法
  12. Grafana+Prometheus系统监控之webhook
  13. 【转】Android开发之数据库SQL
  14. asp.net core 系列 18 web服务器实现
  15. content-type的几种取值
  16. 基于ROS和beaglebone的串口通信方式,使用键盘控制移动机器人
  17. linux下can调试工具canutils安装过程记录
  18. mysql数据库进阶篇
  19. 降阶法计算行列式方法有个地方有Bug(原文也已更正,此为更正后部分)
  20. &lt;魔鬼投资学&gt;读书笔记

热门文章

  1. 在word表格里打勾和打叉
  2. lumen的自定义依赖注入
  3. ctrl+c 和 ctrl+z 的区别
  4. 【Ubuntu 16】安装eclipse
  5. 【Centos 7】使用screen恢复终端连接
  6. TensorFlow框架(2)之TensorBoard详解
  7. 关于springmvc接受简单参数和List集合数据的实现
  8. 极极极极极简的的增删查改(CRUD)解决方案
  9. python增量爬虫pyspider
  10. js 移动端识别手机号码