成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

velocity的基本使用 && 實(shí)例講解

zhunjiee / 3491人閱讀

摘要:的簡(jiǎn)介是一個(gè)基于的模板引擎。使用,也可以寫(xiě)成。所以,應(yīng)該使用規(guī)范的格式書(shū)寫(xiě)現(xiàn)在知道變量是而不是。如當(dāng)頁(yè)面中包含,如果對(duì)象有值,將顯示的值,如果不存在對(duì)象同,則在頁(yè)面中將顯示字符。

velocity的簡(jiǎn)介

Velocity是一個(gè)基于java的模板引擎(template engine)。它允許任何人僅僅簡(jiǎn)單的使用模板語(yǔ)言(template language)來(lái)引用由java代碼定義的對(duì)象,這樣的話(huà)其實(shí)在前后端分離而言又是一個(gè)較為合理的可選方案,
Velocity也可以配合其他的語(yǔ)言來(lái)完成使用,Velocity.js就是不錯(cuò)的選擇,這樣的話(huà)可以依靠nodejs和瀏覽器環(huán)境來(lái)實(shí)現(xiàn)模版的功能。

什么是Velocity模版?

Velocity模版可以是任意的文本文件,只要里面包含專(zhuān)門(mén)的模板語(yǔ)言(VTL)標(biāo)記,就可以被Velocity模板引擎解析;

Velocity模版的工作機(jī)制:

Velocity可以通過(guò)獲取Java對(duì)象的函數(shù)返回值、屬性值,用于替換模板文件中的VTL變量標(biāo)記,從而生成新的文件,模板文件的擴(kuò)展名可以是".vm"、".htm"、".html"、".asp"、".sql",等等任

語(yǔ)法簡(jiǎn)介

大部分的模版引擎都是有自己的書(shū)寫(xiě)方式,不過(guò){}這個(gè)大括號(hào)基本都是他們的通用符號(hào),這里介紹語(yǔ)法的順序是:

變量定義、使用

控制語(yǔ)句 if for之類(lèi)

指令

變量

變量是任何語(yǔ)言都不可缺少的;

變量定義和使用

變量的定義和賦值基本方法:#set (<$變量名> = <"變量值">)
#set ($name = "Sankhya") ##字符串
#set ($age = 30) ##數(shù)字
#set ($list = ["Sankara", ${name}, "Shankara"]) ##數(shù)組
#set ($dict = ["A":"va", "B":234, "C":${value}]) ##HashTable
在雙引號(hào)之間的字符串將被Velocity引擎解釋和重新解釋;在velocity中使用$2.5這樣的貨幣標(biāo)識(shí)是沒(méi)有問(wèn)題得的,因?yàn)関elocity中的變量總是以一個(gè)大寫(xiě)或者小寫(xiě)的字母開(kāi)始的。

使用:
${name} ,也可以寫(xiě)成:$name。提倡用前面的寫(xiě)法。
例如:你希望通過(guò)一個(gè)變量$vice來(lái)動(dòng)態(tài)的組織一個(gè)字符串。
Jack is a $vicemaniac.
本來(lái)變量是$vice現(xiàn)在卻變成了$vicemaniac,這樣Veloctiy就不知道您到底要什么了。所以,應(yīng)該使用規(guī)范的格式書(shū)寫(xiě) : Jack is a ${vice}maniac
現(xiàn)在Velocity知道變量是$vice而不是$vicemaniac。
例如:
#set ($desc = "${name} is ${age} years old;")
執(zhí)行這條語(yǔ)句之后,輸出$desc的值將是:Sankhya is 30 years old;
同時(shí)還需要注意:
(1).Velocity模版中的變量是弱類(lèi)型的;等號(hào)"="右邊的值可以是引用、字符串、數(shù)字、Array、Vector、HashTable或表達(dá)式;
(2).如果等號(hào)"="右邊的值是null,則左邊的變量不會(huì)被賦值,且仍然保留以前的值;
(3).模板中沒(méi)有被定義的變量將被認(rèn)為是一個(gè)字符串;
(4).模板引擎不會(huì)將reference解釋為對(duì)象的實(shí)例變量;如:$foo.Name將被解釋為對(duì)象Foo的getName()方法,而不是Foo對(duì)象的Name實(shí)例變量;$foo.getBar()就等價(jià)于$foo.Bar;

注釋?zhuān)?/strong>

單行注釋使用“##”開(kāi)頭就可: ## 這好似注釋

多行注釋 #* 多行注釋 *#

文檔注釋?zhuān)?#** 文檔編寫(xiě) **#

控制語(yǔ)句 if條件控制語(yǔ)句
#if ()
  ##statement segment
 #elseif ()
  ##statement segment
 #else
  ##statement segment
 #end

作為condition,Velocity引擎也支持關(guān)系運(yùn)算符(>、>=、<、<=、!=)和邏輯運(yùn)算符(&&->AND、||->OR、!->NOT);
"!"用來(lái)強(qiáng)制把不存在的變量顯示為空白。
如當(dāng)頁(yè)面中包含$msg,如果msg對(duì)象有值,將顯示msg的值,如果不存在msg對(duì)象同,則在頁(yè)面中將顯示$msg字符。這是我們不希望的,為了把不存 在的變量或變量值為null的對(duì)象顯示為空白,則只需要在變量名前加一個(gè)“!”號(hào)即可。
如:$!msg

循環(huán)控制
#foreach ($element in $list)
  ##your statement
  $velocityCount
#end
指令

#parse和#include指令:
這兩者都是導(dǎo)入本地模板文件;
#parse指令只能導(dǎo)入一個(gè)文件,同時(shí),被導(dǎo)入的文件的內(nèi)容將會(huì)被Velocity模板引擎解析,意思就是把被導(dǎo)入的文件的內(nèi)容copy到當(dāng)前文件中;該指令也可以被遞歸調(diào)用;

#include指令可以導(dǎo)入一個(gè)或多個(gè)文件,當(dāng)導(dǎo)入多個(gè)文件時(shí),可以用逗號(hào)分隔;而且,被導(dǎo)入的文件的內(nèi)容不會(huì)被Velocity模版引擎解析;
例如:
#include ("one.gif", "two.txt", "three.htm") ##不會(huì)被模版引擎解釋;
#include (${file1}, ${file2}, ${file3}) ##不會(huì)被模版引擎解釋;
#parse ("server.conf") ##會(huì)被模版引擎解釋;

#stop停止執(zhí)行模板引擎并返回,把它應(yīng)用于debug是很有幫助的;
Velocity中的轉(zhuǎn)義字符也是使用符號(hào)"";這就意味著執(zhí)行""將會(huì)輸出"",而執(zhí)行"$"將會(huì)輸出"$",執(zhí)行"#"會(huì)輸出"#";

參考:http://bdxnote.blog.163.com/b...
http://www.blogjava.net/alexw...
http://www.cnblogs.com/likwo/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70048.html

相關(guān)文章

  • velocity基本使用 &amp;&amp; 實(shí)例講解

    摘要:的簡(jiǎn)介是一個(gè)基于的模板引擎。使用,也可以寫(xiě)成。所以,應(yīng)該使用規(guī)范的格式書(shū)寫(xiě)現(xiàn)在知道變量是而不是。如當(dāng)頁(yè)面中包含,如果對(duì)象有值,將顯示的值,如果不存在對(duì)象同,則在頁(yè)面中將顯示字符。 velocity的簡(jiǎn)介 Velocity是一個(gè)基于java的模板引擎(template engine)。它允許任何人僅僅簡(jiǎn)單的使用模板語(yǔ)言(template language)來(lái)引用由java代碼定義的對(duì)象,...

    scq000 評(píng)論0 收藏0
  • Vue.js進(jìn)入/離開(kāi)&amp;列表過(guò)度動(dòng)畫(huà)。

    摘要:包括以下工具在過(guò)渡和動(dòng)畫(huà)中自動(dòng)應(yīng)用可以配合第三方動(dòng)畫(huà)庫(kù),如在過(guò)渡鉤子函數(shù)中使用直接操作可以配合使用第三方動(dòng)畫(huà)庫(kù),如在這里,我們只會(huì)講到進(jìn)入離開(kāi)和列表的過(guò)渡。不僅可以進(jìn)入和離開(kāi)動(dòng)畫(huà),還可以改變定位。 概述 Vue在插入、更新或則移除DOM時(shí),提供多種不同方式的應(yīng)用過(guò)渡效果。包括以下工具: *在CSS過(guò)渡和動(dòng)畫(huà)中自動(dòng)應(yīng)用class *可以配合第三方CSS動(dòng)畫(huà)庫(kù),如Animate.css *...

    thekingisalwaysluc 評(píng)論0 收藏0
  • Python Pandas中l(wèi)oc和iloc函數(shù)基本用法講解

      Python Pandas的主要左右是解決大量的數(shù)據(jù),快速的對(duì)數(shù)據(jù)去進(jìn)行批量的處理,大大提高工作的效率。那么,里面的loc和iloc函數(shù),具體是怎么進(jìn)行使用呢?怎么知道每個(gè)函數(shù)的基本用法呢?下面小編就給大家詳細(xì)的解答下。  1 loc和iloc的含義  loc表示location的意思;iloc中的loc意思相同,前面的i表示integer,所以它只接受整數(shù)作為參數(shù)?! ?用法  import...

    89542767 評(píng)論0 收藏0
  • Vue3中reactive與ref函數(shù)使用場(chǎng)景

      我們知道在 Vue3 中有兩個(gè)非常常用的響應(yīng)式 API:reactive 和 ref。這樣就可以變成我們想要追蹤的數(shù)據(jù)變成響應(yīng)式。  知道嗎?在使用時(shí)一直被告知 ref 用于創(chuàng)建基礎(chǔ)類(lèi)型的響應(yīng)式,也可以創(chuàng)建引用類(lèi)型的響應(yīng)式。而對(duì)于引用類(lèi)型,底層也是轉(zhuǎn)換為 reactive 來(lái)進(jìn)行響應(yīng)式處理。那既然這樣為撒還需要 reactive ,全部使用 ref 不就行了嗎?  雖然 ref 創(chuàng)建的響應(yīng)式數(shù)...

    3403771864 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<