日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VTL(Velocity Templates Language,即Velocity模板语言)初识语法总结

發布時間:2023/12/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VTL(Velocity Templates Language,即Velocity模板语言)初识语法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.velocity是一門基于Java語言的視圖表現層模板引擎,它可以取代jsp,比jsp更高效。

?

2.velocity變量的定義與引用

(1).定義一個變量:#set ($a = "velocity"),變量名為 $a

(2).引用上面定義的變量:Hello $a

?

3.velocity中!號的含義及使用

(1).#if ($!msg) hello?#end:若引用值 $msg 不為空則輸出 hello,否則什么都不輸出。

?

4.velocity中的循環語句語法

#foreach ($stu in $slist)

  ${stu.name}

  ${stu.age}

#end

以上$slist是從Java代碼中引用的對象,$stu是$slist中的一個元素。

?

5.velocity中的注釋

(1).單行注釋:##注釋內容

(2).多行注釋:

#*

注釋內容

*#

(3).文檔格式:

#**

This is a VTL comment block and
may be used to store such information
as the document author and versioning
information:
@version 5
@author

*#

?

6.在VTL中有三種類型的references:變量(variables)、屬性(properties)、方法(methods)。

${mudSlinger} 變量
${customer.Address} 屬性
${purchase.getTotal()} 方法

?

7.注意:VTL中未被定義的變量將被認為是一個字符串,所以以下例子:?

#set( $foo = “gibbous” )
$moon = $foo
的輸出結果是:
$moon = gibbous

?

8.注意VTL中不會將reference解釋為對象的實例變量。例如:$foo.Name將被解釋

為Foo對象的getName()方法,而不是Foo對象的Name實例變量。

?

9.#set ( $monkey.Say = [“Not”, $my, “fault”] )

例子的取值方法為:$monkey.Say.get(0)

?

10.#if ( $foo )?

<strong>Velocity!</strong>
#end
上例中的條件語句將在以下兩種條件下成立:
$foo是一個boolean型的變量,且它的值為true
$foo變量的值不為null

?

11.if else語句例子:

#if( $foo < 10 )
<strong> Go North </strong>
#elseif( $foo == 10 )
<strong> Go East </strong>
#elseif( $foo == 6 )
<strong> Go South </strong>
#else
<strong> Go West </strong>
#end

?

12.velocity的邏輯運算符:

Velocity有AND、OR和NOT邏輯運算符。下面是一些例子:
## logical AND
#if( $foo && $bar )
<strong> This AND that </strong>
#end

## logical OR
#if ( $foo || $bar )
<strong>This OR That </strong>
#end

##logical NOT
#if ( !$foo )
<strong> NOT that </strong>
#end

?

13.Velocity還特別提供了得到循環次數的方法,以便你可以像下面這樣作:?

<table>
#foreach ( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
</table>
$velocityCount變量的名字是Velocity默認的名字,你也可以通過修改velocity.properties文件來改變它。

默認情況下,計數從“1”開始,但是你可以在velocity.properties設置它是從“1”還是從“0”開始。

?

14.include?

#include script element允許模板設計者引入本地文件。被引入文件的內容將不會通過模板引擎被render。
為了安全的原因,被引入的本地文件只能在TEMPLATE_ROOT目錄下。
#inclued ( “one.txt” )
如果您需要引入多個文件,可以用逗號分隔就行:
#include ( “one.gif”, “two.txt”, “three.htm” )
在括號內可以是文件名,但是更多的時候是使用變量的:
#inclue ( “greetings.txt”, $seasonalstock )

?

15.parse?

#parse script element允許模板設計者一個包含VTL的本地文件。Velocity將解析其中的VTL并render模板。
#parse( “me.vm” )
就像#include,#parse接受一個變量而不是一個模板。任何由#parse指向的模板都必須包含在
TEMPLATE_ROOT目錄下。與#include不同的是,#parse只能指定單個對象。

?

?

16.#stop script element允許模板設計者停止執行模板引擎并返回。把它應用于debug是很有幫助的。?

?

17.#macro script element允許模板設計者定義一段可重用的VTL template。例如:?

#macro ( d )
<tr><td></td></tr>
#end
在上面的例子中Velocimacro被定義為d,然后你就可以在任何VTL directive中以如下方式調用它:
#d()

?

?

18.其他特性和雜項?

math 在模板中可以使用Velocity內建的算術函數,如:加、減、乘、除
#set ( $foo = $bar + 3 )
#set ( $foo = $bar - 4 )
#set ( $foo = $bar * 6 )
#set ( $foo = $bar / 2 )
當執行除法時將返回一個Integer類型的結果。而余數你可以使用%來得到:
#set ( $foo = $bar % 5 )

?

?

19.開發人員最常問的問題是我如何作字符拼接?在java中是使用“+”號來完成的。?

在VTL里要想實現同樣的功能你只需要將需要聯合的reference放到一起就行了。例如:
#set ( $size = “Big” )
#set ( $name = “Ben” )
The clock is $size$name.
輸出結果將是:The clock is BigBen.。更有趣的情況是:
#set ( $size = “Big” )
#set ( $name = “Ben” )
#set ( $clokc = “$size$name” )
The clock is $clock.
上例也會得到同樣的結果。

?

轉載于:https://www.cnblogs.com/itxinke/p/7211479.html

總結

以上是生活随笔為你收集整理的VTL(Velocity Templates Language,即Velocity模板语言)初识语法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。