设为首页 加入收藏

TOP

FreeMarker教程(四)
2014-11-24 12:02:18 来源: 作者: 【 】 浏览:134
Tags:FreeMarker 教程
输出:
User: Anonymous
注,可以对整个对象树加上(),再用内置处理器这种方便的做法,偶也是最近刚学会的,以前一直用很傻的方法做.....
3. Sequence内置的计数器: xxx_index
用途:显示序号
模板:
<#list employees as e>
${e_index}. ${e.name}
输出:
1. Readonly
2. Robbin
4. Sequence内置的分段器: chunk
用途:某些比较BT的排版需求
模板:
<#assign seq = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']>
<#list seq chunk(4) as row>
  • <#list row as cell>${cell}
  • <#list seq chunk(4, '-') as row>
    www.2cto.com
    输出:
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • 可以看到例子中使用的两个同名变量并没有冲突,因为它们位于不同的名字空间
    l 可以使用assign指令在导入的名字空间中创建或替代变量,下面是一个例子:
    <#import "/lib/my_test.ftl" as my>
    ${my.mail}
    <#assign mail="jsmith@other.com" in my>
    ${my.mail}
    l 输出结果:
    jsmith@acme.com
    jsmith@other.com
    l 数据模型中的变量任何地方都可见,也包括不同的名字空间,下面是修改的库:
    <#macro copyright date>

    Copyright (C) ${date} ${user}. All rights reserved.

    <#assign mail = "${user}@acme.com">
    l 假设数据模型中的user变量的值是Fred,则下面的代码:
    <#import "/lib/my_test.ftl" as my>
    <@my.copyright date="1999-2002"/>
    ${my.mail}
    l 输出结果:

    Copyright (C) 1999-2002 Fred. All rights reserved.

    Fred@acme.com
    Freemarker - 几个比较实用的例子 - -
    用Freemarker做模本语言有一段时间了,列出几个和JSP或者Velocity相比起来比较方便的用途,目的是引诱更多的人跳上Freemarker这个贼船,
    1. String内置的 JavaScript转换: js_string
    用途:用于 java script转义,转换',",换行等特殊字符
    模板:
    <script>
    alert("${errorMessage js_string}");
    输出:
    <script>
    alert("Readonly\'s pet name is \"Cross Bone\"");
    2.内置的默认值处理:default
    用途: 用于处理默认值
    模本:
    User: ${userLogin.name default("Anonymous")}
    ${(employee.department.manager.name) default(" ")}
    <#list row as cell>${cell}
    a b c d
    e f g h
    i j - -
    首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    分享到: 
    上一篇freemaker的初步使用 下一篇java关于集合的遍历与增强for循环..

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容: