今天使用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是普通的字符串