Velocity語法

1.註釋:htm

單行註釋的前導符爲「##」;對象

對於多行註釋,則採用「#*」和「*#」符號。ci

2.引用:字符串

在Velocity中,有3種類型的引用:變量、屬性和方法。get

  • 變量引用:

變量引用的簡略標記爲一個前導「$」後跟一個VTL標識符。VTL標識符可由字母、數字、中劃線和下劃線組成。數學

給引用變量賦值有兩種方法:Java代碼中給變量賦值和在模板中經過#set指令給變量賦值。#set( $foo = "bar") it

  • 屬性引用

屬性引用的簡略標記爲一個前導"$"後跟一個VTL標識符,後面再跟一個點號("."),最後跟一個VTL標識符。如$client.phone。ast

  • 方法引用

方法在Java代碼中定義,VTL中方法引用的簡略標記爲前導符"$"後跟一個VTL標識符,再跟一個點號".",最後跟方法體。如$customer.getAddress()。模板

  • 正式引用符

如${client}格式。Jack is a ${vice}maniac。正式引用符經常使用在引用變量和普通文本直接臨近的地方。email

  • 安靜引用符

當Velocity遇到一個未賦值的引用時,會直接輸出這個引用的名字。實際中遇到這種狀況咱們但願顯示空白域。此時使用安靜引用符就能夠達到目的。安靜引用符的前導字符爲"$!",如$!{email}。

  • 轉義符

VTL中的"$"具備特殊的含義。若是但願把"$"做爲普通的字符來處理,應該採用"\$"形式,其中"\"爲轉義符。

例如$set ($email = "foo")

$email

\$email

\\$email

\\\$email

以上代碼的輸出結果爲:

foo

$email

\foo

\$email

3.指令:

  • #set指令

#set( $primate = "monkey")

#set( $people.say = ["yes","no",$primate])

  • 字面字符串

當使用#set指令時,在雙引號中的字面字符串將被解析。

當字面字符串被包括在單引號中時,將不被解析。例如:

#set ( $foo = "bar")

$foo

#set ( $blargh = '$foo')

$blargh

以上代碼的輸出結果爲:

bar

$foo

  • #if指令

#if( $foo)

    <strong>Velocity!</strong>

#end

當$foo是一個邏輯類型變量而且值爲true或$foo的值非空時,if條件爲真。

當$foo是一個邏輯類型變量而且值爲false或$foo的值爲null時,if條件爲假。

在#if語句中還能夠包含#elseif和#else項,而且Velocity引擎將在遇到第一個爲真的表達式時中止邏輯判斷。

  • 比較運算

在if條件表達式中,Velocity支持3種變量類型的比較運算:字符串比較、對象比較和整數比較。

字符串比較:字符串比較使用操做符"=="來決定兩個字符串的內容是否相同。

對象比較:對象比較使用操做符"=="。只有當等號兩邊的引用變量引用同一個對象時,比較結果才爲true。

整數比較:Velocity目前只支持整數類型數據的比較。#if( $a==10), #if( $a>10), #if( $a<10)。

  • #foreach循環指令

#foreach($client in $clientList)

    <tr><td>$client.firstname</td><td>$client.lastname</td><td>$client.phone</td></tr>

#end

  • #include指令

#include指令用來導入本地文件,這些文件將被插入到模板中#include指令被定義的地方。#include("head.htm",$page,"footer.htm")。

  • #parse指令
  • #macro指令
  • 轉義VTL指令
  • VTL的格式

4.其餘特徵:

  • 數學運算
  • 範圍操做符
  • 字符串的鏈接
相關文章
相關標籤/搜索