天天看点

Velocity生成带有EL表达式的JSP文件

今天使用Velocity模版生成jsp文件的时候遇到的一个问题,生成EL表达式

我们知道el表达式使用${},而${}恰巧是Velocity的保留字

要生成 ${dic:get('DEMO')} 

第一次:直接写被当作Velocity表达式解析

第二次:将“$”符“{”符“}”符 转译 

            \$\{dic:get('DEMO')\}  

            输出的是: \$\{dic:get('DEMO')\}   他竟然原样输出了

之后翻了下网上的资料 

#literal() 

#end 

这个指令可以绕开Velocity的引擎的解析 

之后修改为 #literal()${#end dic:get('DEMO')#literal()}#end 

这样就正常输出了:${dic:get('DEMO')} 

之后和朋友讨论 还有一种方法 

A:${dic:get('DEMO')} 

B:${ dic:get('DEMO')} 

这两种对于jsp都是一样的,但对于Velocity来说A是需要解析的表达式 B是普通的字符串