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