当前位置: 首页 > 图文教程 > Java技术 > Web框架 > Web框架:FreeMarker中的escape , noescape指令

Web框架
浅谈Ajax与Spring集成
浅谈Mock和基于Spring容器管理事务的测试
Hibernate中一级缓存与二级缓存
浅谈Hibernate的配置信息(一)
浅谈Hibernate的配置信息(二)
浅谈Spring中使用Quartz来执行计划任务
浅谈JFreeChart实时曲线(代码)
Ajax框架中选DWR还是A4J
浅谈Hibernate中关联问题
浅谈项目开发过程中使用Struts-menu
浅谈使用模板模式简化操作Hibernate
Hibernate中加载并存储对象
浅谈Hibernate依赖对象(Dependent objects)
浅谈Hibernate中自定义值类型
ORM那些事
51培训对Hibernate中的事务详解
51培训详谈Hibernate检索
详谈Struts2的核心概念(上)
详谈Struts2的核心概念(下)
浅谈应用dom4j操作xml文件

Web框架:FreeMarker中的escape , noescape指令


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

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表达式.