技术开发 频道

Freemarker - 几个比较实用的例子

{$PageTitle=}
IT168技术文档】 
    偶用Freemarker做模本语言有一段时间了,列出几个和JSP或者Velocity相比起来比较方便的用途,目的是引诱更多的人跳上Freemarker这个贼船.

1. String内置的JavaScript转换: js_string
用途:用于JavaScript转义,转换',",换行等特殊字符
模板:
<script> alert("${errorMessage?js_string}"); </script>
输出:
<script> alert("Readonly\'s pet name is \"Cross Bone\""); </script>
2.内置的默认值处理:default
用途: 用于处理默认值
模本:
User: ${userLogin.name?default("Anonymous")} <td>${(employee.department.manager.name)?default("&nbsp;")}</td>
输出:
User: Anonymous <td>&nbsp;</td>
注,可以对整个对象树加上(),再用内置处理器这种方便的做法,偶也是最近刚学会的,以前一直用很傻的方法做.....

3. Sequence内置的计数器: xxx_index
用途:显示序号
模板:
<#list employees as e> ${e_index}. ${e.name} </#list>
输出:

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> <ul> <li><#list row as cell>${cell} </#list></li> </ul> </#list> <#list seq?chunk(4, '-') as row> <tr> <td><#list row as cell>${cell} </#list></td> </tr> </#list>
输出:
<ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> </ul> <ul> <li>e</li> <li>f</li> <li>g</li> <li>h</li> </ul> <ul> <li>i</li> <li>j</li> </ul> <tr> <td>a</td> <td>b</td> <td>c</td> <td>d</td> </tr> <tr> <td>e</td> <td>f</td> <td>g</td> <td>h</td> </tr> <tr> <td>i</td> <td>j</td> <td>-</td> <td>-</td> </tr>
5. 等待你补充更多的例子......
0
相关文章