该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2005-09-14
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. 等待你补充更多的例子...... 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-09-14
极度憎恨这些模板语言,性能杀手呀。
|
|
返回顶楼 | |
发表时间:2005-09-14
支持,不过你写的也太少了点哦
|
|
返回顶楼 | |
发表时间:2005-09-14
shanghai 写道 极度憎恨这些模板语言,性能杀手呀。
哦,我喜欢Template~~ |
|
返回顶楼 | |
发表时间:2005-09-14
shanghai 写道 极度憎恨这些模板语言,性能杀手呀。
模板语言是性能杀手?这个结论怎么得出的? 当然,如果要用纯静态生成来比,那是没的比,但这种技术适用的范围并不是很大 |
|
返回顶楼 | |
发表时间:2005-09-14
为什么模板语言是性能杀手?什么样的页面才不是性能杀手?
Freemarker真的很强大,我喜欢,不过readonly提的这些似乎还不够典型啊,至少这些JSTL都可以做到,而且有的写法比Freemarker优雅 |
|
返回顶楼 | |
发表时间:2005-09-14
别的模版语言不清楚,但是FreeMarker性能可并不差。
|
|
返回顶楼 | |
发表时间:2005-09-14
downpour 写道 Freemarker真的很强大,我喜欢,不过readonly提的这些似乎还不够典型啊,至少这些JSTL都可以做到,而且有的写法比Freemarker优雅
JSTL不了解, 偶的印象就是标准化的Tag Lib,举个上面对应的优雅例子看看? |
|
返回顶楼 | |
发表时间:2005-09-15
文章不错,但是不喜欢 代码中出现 " $,#"这样的符号,有点像 PHP
和 ognl比哪个方便一点? |
|
返回顶楼 | |
发表时间:2005-09-15
jstl在语法形式上应该优于FreeMarker。
在我们的tpl模板语言中, 1. JavaScript转换 <script> alert('${escape(errorMessage)}');</script> 2. 默认值处理 <td>${nvl(employee.department.manager.name,' ')}</td> 3. 循环指标 <c:forEach var="e" items="${employees}" varStatus="vt"> ${vt.index} . ${e.name} </c:forEach> 4. chunk <c:set var="seq" values="${toList('a','b','c','d','e','f','g','h','i','j']}" /> <c:forEach var="row" items="${chunk(seq,4)}" > <ul> <li><c:forEach var="cell" items="${row}">${cell}</c:forEach> </ul> </c:forEach> |
|
返回顶楼 | |