当前位置: 首页 > 图文教程 > Java技术 > Java Web开发 > FreeMarker指令那些事

Java Web开发
Java Web开发:UML的概念和模型
Java Web开发:Spring中的Web Context
Java Web开发:小编谈J2EE何存优势?
Java Web开发:Javaweb基础之Connection 接口浅析
Java Web开发:小编对新手学习jsp的六条建议建议
Java Web开发:小编谈如何成为一个优秀的jsp程序员
Java Web开发:小编谈J2EE 技术中的那些事
Java Web开发:小编浅谈J2EE技术
Java Web开发:小编浅谈JavaScript小技巧
Java Web开发:小编浅谈JavaScript小技巧(2)
Java Web开发:小编浅谈JavaScript小技巧(3)
Java Web开发:小编浅谈JavaScript小技巧(4)
Java Web开发:小编浅谈JavaScript小技巧(5)
Java Web开发:小编浅谈JavaScript小技巧(6)
Java Web开发:小编浅谈JavaScript小技巧(7)
Java Web开发:小编浅谈JavaScript小技巧(8)
Java Web开发:小编浅谈JavaScript小技巧(9)
Java Web开发:小编浅谈JavaScript小技巧(10)
Java Web开发:小编浅谈JavaScript小技巧(11)
Java Web开发:小编浅谈JavaScript小技巧(12)

Java Web开发 中的 FreeMarker指令那些事


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-12-26   浏览: 276 ::
收藏到网摘: n/a

escape , noescape指令

 

escape指令导致body区的插值都会被自动加上escape表达式,但不会影响字符串内的插值,只会影响到body内出现的插值,使用escape指令的语法格式如下:

<#escape identifier as expression>...

<#noescape>...</#noescape>

</#escape>

 

看如下的代码:

<#escape x as x?html>

First name:${firstName}

Last name:${lastName}

Maiden name:${maidenName}

</#escape>

上面的代码等同于:

First name:${firstName?html}

Last name:${lastName?html}

Maiden name:${maidenName?html}

 

escape指令在解析模板时起作用而不是在运行时起作用,除此之外,escape指令也嵌套使用,escape继承父escape的规则,如下例子:

<#escape x as x?html>

Customer Name:${customerName}

Items to ship;

<#escape x as itemCodeToNameMap[x]>

   ${itemCode1}

   ${itemCode2}

   ${itemCode3}

   ${itemCode4}

</#escape>

</#escape>

上面的代码类似于:

Customer Name:${customerName?html}

Items to ship;

${itemCodeToNameMap[itemCode1]?html}

${itemCodeToNameMap[itemCode2]?html}

${itemCodeToNameMap[itemCode3]?html}

${itemCodeToNameMap[itemCode4]?html}

 

对于放在escape指令中所有的插值而言,这此插值将被自动加上escape表达式,如果需要指定escape指令中某些插值无需添加escape表达式,则应该使用noescape指令,放在noescape指令中的插值将不会添加escape表达式.

 

 

include指令

 

include指令的作用类似于JSP的包含指令,用于包含指定页.include指令的语法格式如下:

<#include filename [options]>

在上面的语法格式中,两个参数的解释如下:

filename:该参数指定被包含的模板文件

options:该参数可以省略,指定包含时的选项,包含encodingparse两个选项,其中encoding指定包含页面时所用的解码集,parse指定被包含文件是否作为FTL文件来解析,如果省略了parse选项值,则该选项默认是true.

 

import指令

 

该指令用于导入FreeMarker模板中的所有变量,并将该变量放置在指定的Map对象中,import指令的语法格式如下:

<#import "/lib/common.ftl" as com>

上面的代码将导入/lib/common.ftl模板文件中的所有变量,交将这些变量放置在一个名为comMap对象中.

 

noparse指令

 

noparse指令指定FreeMarker不处理该指定里包含的内容,该指令的语法格式如下:

<#noparse>...</#noparse>

 

看如下的例子:

<#noparse>

<#list books as book>

   <tr><td>${book.name}<td>作者:${book.author}

</#list>

</#noparse>

输出如下:

<#list books as book>

   <tr><td>${book.name}<td>作者:${book.author}

</#list>