Velocity 模板如何顯示 $! , ${} 等特殊符號

由於使用到了 Velocity 模板,有時候須要顯示 $!{obj} 這樣的內容。html

其實也就是 在頁面直接顯示 $!{obj} , 而不是顯示 obj 內容.java

//若是$foo未定義過
$foo 輸出:$foo
\$foo 輸出:\$foo
\\$foo 輸出:\\$foo
\\\$foo 輸出:\\\$fooweb

//若是$foo已經定義過
#set($foo="bar")
$foo 輸出:bar
\$foo 輸出:$foo
\\$foo  輸出:\bar
\\\$foo 輸出:\$foo    htm

參考地址: http://www.51gjie.com/javaweb/899.htmlci

 

而後我就是 嘗試了一下 : content="$\!webPath"文檔

生成的內容就是  content="$!webPath" 了,字符串

在 $ 前加 \ 便可,it

 

可是有些 特殊狀況,或者特殊符號,就可能很難搞了,去百度啊,什麼的太難找了。模板

並且 文檔資料太少了。不過咱們有終極大招效率

 

終極處理顯示特殊符號

#set($websiteCss1="$!{")
#set($websiteCss2="config.websiteCss}")

$websiteCss1$websiteCss2

 

這樣子生成的模板就會顯示 : $!{config.websiteCss}

這樣子了,其餘特殊符號,都是能夠採用這樣的拼接字符串的笨方式的,貌似也不算效率低吧

 

某些特殊符號不能顯示出來

好比說 ,  #*    *# 

這樣的註釋 符號, 

#set($websiteCss1="#*")

結果生成的模板文件, 竟然是 原樣的: 

#set($websiteCss1="#*")

根本不能自定義屬性內容是  #*  或者 *# 或者  . 逗號, 或者  $!   ,  $ 這樣的符號。。。

 

並且 建議使用 ${obj} 這樣的寫法,而不是 $obj ,總之帶上 {} 會更加規範,這樣生成的內容出現的問題也就會越少。

 

 

若是給我選擇,我不會選擇這個模板,使用  freemarker 就會好不少,  並且 模板出錯了,提示也會更加的友好。

相關文章
相關標籤/搜索