亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Velocity基本語法介紹

2019-11-26 16:00:13
字體:
來源:轉載
供稿:網友

一、基本語法
1、"#"用來標識Velocity的腳本語句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;
如:
#if($info.imgs)
<img src="http://VeVB.COm/ydmx_lei/blog/$info.imgs" border=0>
#else
<img src="http://VeVB.COm/ydmx_lei/blog/noPhoto.jpg">
#end

2、"$"用來標識一個對象(或理解為變量);如
如:$i、$msg、$TagUtil.options(...)等。

3、"{}"用來明確標識Velocity變量;
比如在頁面中,頁面中有一個$someonename,此時,Velocity將把someonename作為變量名,若我們程序是想在someone這 個變量的后面緊接著顯示name字符,則上面的標簽應該改成${someone}name。

4、"!"用來強制把不存在的變量顯示為空白。
如當頁面中包含$msg,如果msg對象有值,將顯示msg的值,如果不存在msg對象同,則在頁面中將顯示$msg字符。這是我們不希望的,為了把不存 在的變量或變量值為null的對象顯示為空白,則只需要在變量名前加一個“!”號即可。
如:$!msg

二、在EasyJWeb中的最佳實踐
理論上你可以在EasyjWeb模板使用所有Velocity的腳本及功能,但我們不推薦你在界面模板中使用過多過復雜的腳本表達方式,在萬不得已的情況下,不要在界面模板中加入任何復雜的邏輯,更不要在界面模板中加入變量聲明、邏輯運算符等等。

在EasyJWeb中,我們提供了五條基本的模板腳本語句,基本上就能滿足所有應用模板的要求。這四條模板語句很簡單,可以直接由界面設計人員來添加。在當前很多EasyJWeb的應用實踐中,我們看到,所有界面模板中歸納起來只有下面四種簡單模板腳本語句即可實現:

1、$!obj  直接返回對象結果。
如:在html標簽中顯示java對象msg的值。<p>$!msg</p>
在html標簽中顯示經過HtmlUtil對象處理過后的msg對象的值  <p>$!HtmlUtil.doSomething($!msg)</p>

2、#if($!obj) #else #end 判斷語句
如:在EasyJWeb各種開源應用中,我們經常看到的用于彈出提示信息msg的例子。
#if($msg)
<script>
alert('$!msg');
</script>
#end
上面的腳本表示當對象msg對象存在時,輸出<script>等后面的內容。

3、#foreach( $info in $list) $info.someList #end  循環讀取集合list中的對象,并作相應的處理。
如:EasyJF開源論壇系統中論(0.3)壇首頁顯示熱門主題的html界面模板腳本:
#foreach( $info in $hotList1)
<a href="/bbsdoc.ejf?easyJWebCommand=show&&cid=$!info.cid" target="_blank">$!info.title</a><br>
#end
上面的腳本表示循環遍歷hotList1集合中的對象,并輸出對象的相關內容。

4、#macro(macroName)#end 腳本函數(宏)調用,不推薦在界面模板中大量使用。
如:在使用EasyJWeb Tools快速生成的添刪改查示例中,可以點擊列表的標題欄進行升降排序顯示,這是我們在EasyJWeb應用中經??吹降囊粋€排序狀態顯示的模板內容。
函數(宏)定義,一般放在最前面
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://VeVB.COm/ico/${orderType}.gif">
#end
#end
具體的調用如:<font color="#FFFFFF">頭銜#orderPic("title")</font>

5、包含文件#inclue("模板文件名")或#parse("模板文件名")
主要用于處理具有相同內容的頁面,比如每個網站的頂部或尾部內容。
使用方法,可以參考EasyJF開源Blog及EasyJF開源論壇中的應用!
如:#parse("/blog/top.html")或#include("/blog/top.html")
parse與include的區別在于,若包含的文件中有Velocity腳本標簽,將會進一步解析,而include將原樣顯示。

三、關于#set的使用
在萬不得已的時候,不要在頁面視圖自己聲明Velocity腳本變量,也就是盡量少使用#set。有時候我們需要在頁面中顯示序號,而程序對象中又沒有包 含這個序號屬性同,可以自己定義。如在一個循環體系中,如下所示:
#set ($i=0)
#foreach($info in $list)
序號:$i
#set($i=$i+1)
#end

四、Velocity腳本語法摘要
1、聲明:#set ($var=XXX)
左邊可以是以下的內容

復制代碼 代碼如下:

Variable reference
String literal
Property reference
Method reference
Number literal #set ($i=1)
ArrayList #set ($arr=["yt1","t2"])

算術運算符

2、注釋:
單行## XXX
多行#* xxx
xxxx
xxxxxxxxxxxx*#

References 引用的類型

3、變量 Variables
以 "$" 開頭,第一個字符必須為字母。character followed by a VTL Identifier. (a .. z or A .. Z).
變量可以包含的字符有以下內容:
alphabetic (a .. z, A .. Z)
numeric (0 .. 9)
hyphen ("-")
underscore ("_")

4、Properties
$Identifier.Identifier
$user.name
hashtable user中的的name值.類似:user.get("name")

5、Methods
object user.getName() = $user.getName()

6、Formal Reference Notation
用{}把變量名跟字符串分開


#set ($user="csy"}
${user}name
返回csyname

$username
$!username
$與$!的區別
當找不到username的時候,$username返回字符串"$username",而$!username返回空字符串""

7、雙引號 與 引號
#set ($var="helo")
test"$var" 返回testhello
test'$var' 返回test'$var'
可以通過設置 stringliterals.interpolate=false改變默認處理方式

8、條件語句

復制代碼 代碼如下:

#if( $foo )
<strong>Velocity!</strong>
#end
#if($foo)
#elseif()
#else
#end

當$foo為null或為Boolean對象的false值執行.

9、邏輯運算符:== && || !

10、循環語句#foreach($var in $arrays ) // 集合包含下面三種Vector, a Hashtable or an Array
#end
#foreach( $product in $allProducts )
<li>$product</li>
#end

#foreach( $key in $allProducts.keySet() )
<li>Key: $key -> Value: $allProducts.get($key)</li>
#end

#foreach( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end

11、velocityCount變量在配置文件中定義

復制代碼 代碼如下:

# Default name of the loop counter
# variable reference.
directive.foreach.counter.name = velocityCount
# Default starting value of the loop
# counter variable reference.
directive.foreach.counter.initial.value = 1

12、包含文件
#include( "one.gif","two.txt","three.htm" )

13、Parse導入腳本
#parse("me.vm" )

14、#stop 停止執行并返回

15、定義宏Velocimacros ,相當于函數 支持包含功能
#macro( d )
<tr><td></td></tr>
#end
調用
#d()

16、帶參數的宏

復制代碼 代碼如下:

#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end

17、Range Operator
#foreach( $foo in [1..5] )

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合一区二区三区| 欧美激情精品久久久久久变态| 欧美韩国理论所午夜片917电影| 亚洲欧洲日韩国产| 亚洲午夜女主播在线直播| 欧洲美女7788成人免费视频| 欧美精品成人在线| 午夜精品免费视频| 一区二区在线视频播放| 国产亚洲精品久久久优势| 美女久久久久久久久久久| 九九视频直播综合网| 日韩精品高清视频| 欧洲亚洲免费视频| 欧美精品精品精品精品免费| 日韩成人xxxx| 亚洲一区二区精品| 欧美精品手机在线| 色偷偷av亚洲男人的天堂| 日韩欧美精品免费在线| 国产精品高潮呻吟久久av野狼| 欧美重口另类videos人妖| 色天天综合狠狠色| 97久久超碰福利国产精品…| 国产精品www| 成人免费在线视频网站| 色视频www在线播放国产成人| 亚洲福利精品在线| 国产精品视频中文字幕91| 揄拍成人国产精品视频| 96国产粉嫩美女| 欧美亚洲在线视频| 亚洲乱码国产乱码精品精天堂| 国产美女久久久| 国产亚洲视频中文字幕视频| 精品人伦一区二区三区蜜桃网站| 91高清在线免费观看| 国产91对白在线播放| 日韩风俗一区 二区| 国产成人精品av| 亚洲aa中文字幕| xvideos亚洲人网站| 91夜夜揉人人捏人人添红杏| 亚洲人成网站免费播放| 亚洲精品中文字幕女同| 91国产在线精品| 一区二区三区精品99久久| 国产精品成人v| 美日韩在线视频| 久久久电影免费观看完整版| 欧美大片在线免费观看| 国产欧美va欧美va香蕉在线| 成人性生交xxxxx网站| 97超级碰碰人国产在线观看| 91精品国产色综合久久不卡98| 黑人巨大精品欧美一区免费视频| 国产精品久久久久久久一区探花| 欧美激情在线播放| 国产日韩欧美综合| 欧美激情aaaa| 久久久成人的性感天堂| 亚洲国产日韩欧美综合久久| 亚洲精品国产suv| 最新日韩中文字幕| 久久免费国产精品1| 日韩av网站在线| 91精品国产免费久久久久久| 亚洲美女av网站| 91探花福利精品国产自产在线| 亚洲欧美三级伦理| 岛国av一区二区在线在线观看| 国产精品久久久久久久久久| 亚洲a一级视频| 亚洲精品视频免费在线观看| 成人在线免费观看视视频| 久久久成人精品| 欧美精品在线极品| 欧洲成人性视频| 亚洲成人精品视频| 亚洲免费视频观看| 国产日韩欧美中文| 国产成人精品一区二区三区| 97超级碰碰碰久久久| 国产精品成人国产乱一区| 成人国产精品久久久久久亚洲| 久久久久久久999| 亚洲一区二区三区四区视频| 国产噜噜噜噜久久久久久久久| 亚洲免费av网址| 精品成人国产在线观看男人呻吟| 久久久久久网站| 国产一区二区三区日韩欧美| 成人xvideos免费视频| 亚洲综合日韩中文字幕v在线| 日韩激情在线视频| 亚洲国产精品推荐| 亚洲欧美日韩天堂| 国产成人精品综合| 色综合天天综合网国产成人网| 8090理伦午夜在线电影| 久久精品一偷一偷国产| 欧美一级电影久久| 国产精品中文在线| 久久久999精品| 久久精品人人做人人爽| 欧美成人精品xxx| 精品国产欧美成人夜夜嗨| 国产精品久久久久秋霞鲁丝| 欧美成人激情视频免费观看| 国产一区二区美女视频| 国产在线拍偷自揄拍精品| 国产精品久久久久999| 欧洲亚洲女同hd| www.日韩不卡电影av| 国产精品福利在线观看| 亚洲天堂av电影| 亚洲成人网在线观看| 欧美日韩国产麻豆| 欧美日韩国产色视频| 亚洲欧美日韩高清| 亚洲a一级视频| 日韩欧美精品网站| 最近2019中文字幕第三页视频| 亚洲国产精品悠悠久久琪琪| 日韩精品电影网| 国产欧美在线看| 国产精品久久久久久久久久| 欧美成人精品h版在线观看| 亚洲国产精品va在线看黑人| 国产精品7m视频| 亚洲日韩中文字幕在线播放| 欧美诱惑福利视频| 午夜精品久久久久久久99黑人| 欧美成人精品在线视频| 不卡伊人av在线播放| 亚洲经典中文字幕| 国产精品午夜国产小视频| 国产精品久久久久久久av大片| 在线播放国产一区二区三区| 青草成人免费视频| 成人免费网站在线| 黑人巨大精品欧美一区二区一视频| 久久的精品视频| 欧美—级a级欧美特级ar全黄| 成人激情春色网| 久久韩国免费视频| 欧美日韩成人在线观看| 国产精品电影在线观看| 久久亚洲电影天堂| 日韩视频永久免费观看| 亚洲自拍偷拍区| 国产999精品久久久影片官网| 亚洲欧美激情精品一区二区| 国产精品91久久久久久| 亚洲无亚洲人成网站77777| 91产国在线观看动作片喷水| 亚洲欧美日韩爽爽影院| 7m第一福利500精品视频| 国内精品视频久久| 欧美大成色www永久网站婷| 92裸体在线视频网站| 日韩在线中文字幕| 成人信息集中地欧美| 成人免费激情视频|