首页 > 代码库 > Velocity(10)——指令的转义
Velocity(10)——指令的转义
引用的转义使用"\",指令的转义也是使用"\"。但是,指令的转义要比引用的转义复杂很多。例如:
#if($foo) Go!#end$foo为true,输出Go!;否则不输出任何内容。
使用转义:
\#if( $foo ) Go!\#end此时,"\"和"#"结合,从而破坏了原本的#if(),而$foo作为判断条件,也不会被解析。所以上面这段代码,无论$foo是true还是false,结果都是#if( $foo ) Go!#end这类似于使用了#literal() ... #end指令。
如果使用两个"\":
\\#if( $foo ) Go!\\#end首先,#if前面的两个假定$foo是true,那么会输出"Go!",并且是紧跟在刚才的"\"后面(因为没有换号符)。#if($foo)和#end之间的内容,都会输出,包括#end前面的两个"\",它们会被解析为一个"\"。如果$foo是false,仅仅输出一个"\",而"Go!"以及后面下一行的"\"不会输出。"\"结合,变为一个"\"输出。然后#if($foo)正常处理。
还有一种情况需要说明:
\\\#if($foo) Go!\\#end前两个"\"被解析为"\",第三个"\"和后面的"#"解析为"#",#if()被破坏。所以输出就是 \#if($foo) Go!\......注意最后那里,有一个合法的#end,但是它是多余的,所以这一段代码是会报错的。
Velocity(10)——指令的转义
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。