引用(References)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
VTL有3種類型的引用:變量、屬性和方法。作爲一個設計者,必須和Java工程師在VTL引用的名稱(標識符)上一致,以便在模板中使用它們。引用是作爲String對象處理的。
(1)變量
變量的格式:$VTL標識符
VTL標識符以字母開始,由字母、數字、橫劃線(-)或下劃線(_)組成。變量或者從模板中的set指令獲得值(如前面的例子),或者Java代碼(同名變量)中獲得值。Velocity只處理已定義的變量引用,對於沒有定義的變量引用,Velocity原樣返回。例如下面的例子:
輸出結果是:$moon = gibbous
(2)屬性
屬性的格式:$VTL標識符. VTL標識符
下面是屬性引用的例子:
拿第一例子來說,有兩種意思:
l 返回Hashtable對象customer中鍵值爲Address的值
l $customer.getAddress()方法引用的縮寫(JavaBean屬性的getter方法)
至於是哪種情況,Velocity會做決定,返回合適的值。
(3)方法
方法的格式:$VTL標識符(參數列表)
下面是方法引用的例子:
前面兩個例子可以縮寫成屬性引用(如屬性引用的例子)。屬性引用和方法引用的主要區別是方法引用可以指定參數列表。
(4)正式引用符號:{}
正式引用符號在使用變量引用含糊的地方進行區分。看下面的例子:
輸出結果是:Jack is a $vicemaniac.($vicemaniac沒有定義,原樣輸出)
輸出結果是:Jack is a kleptomaniac.(使用正式引用符號將$vice和其它文本區分開)
(5)Quit引用符號:!
看下面的例子:
初始時,$email沒有值,所以文本框中會顯示值$email,而更希望是空白。下面是使用Quit引用符號的例子:
當$email沒有值時,Velocity會用空串替代$email。
(6)特殊字符轉義
對於$、#等特殊字符要正常顯示,可以使用/進行轉義,//轉義爲/。下面是一個例子:
輸出結果是: