摘要:什么是是基于的模板引擎,它允許頁(yè)面設(shè)計(jì)者引用中定義的方法。注意會(huì)保留你所留下的空格,所以如拼字符串時(shí)都是鼓勵(lì)用。結(jié)果輸出因?yàn)橛疫叺牟](méi)有定義過(guò)模板中不會(huì)將解釋為對(duì)象的實(shí)例變量。等同于等同于等同于等同于變量的作用域是從上而下往后的都會(huì)有。
什么是 Velocity?
Velocity是基于Java的模板引擎,它允許頁(yè)面設(shè)計(jì)者引用Java中定義的方法。頁(yè)面設(shè)計(jì)者和Java開(kāi)發(fā)者能夠同時(shí)使用MVC的模式開(kāi)發(fā)網(wǎng)站,這樣網(wǎng)頁(yè)設(shè)計(jì)者能夠把精力放在頁(yè)面的設(shè)計(jì)上,程序員也可以把精力放在代碼開(kāi)發(fā)上。Velocity把Java代碼從Web頁(yè)面中分離, 使網(wǎng)站可維護(hù)性更強(qiáng),同時(shí)也在Java服務(wù)器頁(yè)面(JSPs)或者PHP中提供了可視化交互的選擇。
一、注釋單行: ## 句子 多行: #* 句子句子 *# 文檔格式: #** 句子句子 **#二、變量
賦值和讀取: //賦值 #set($name = “hello”) //讀取 ${name} ,也可以寫(xiě)成:$name。 注意: VM會(huì)保留你所留下的空格,所以如拼字符串時(shí) 都是鼓勵(lì)用{}。 eg: #if($a==1)true enough#elseno way!#end // 這時(shí)候會(huì)報(bào)錯(cuò) 因?yàn)闆](méi)有#elseno這個(gè)的語(yǔ)法 #if($a==1)true enough#else no way!#end //這個(gè)時(shí)候no way前面會(huì)有空格 #if($a==1)true enough#{else}no way!#end // 正確示范
注意幾點(diǎn):
1.右值是null, 則左值不會(huì)被賦值,也就是說(shuō)會(huì)保留以前的值。
eg: #set( $monkey = "monica" ) #set( $monkey = $monkey_a ) $monkey 結(jié)果輸出:monica 因?yàn)橛疫叺?monkey_a并沒(méi)有定義過(guò)
2.velocity模板中不會(huì)將reference解釋為對(duì)象的實(shí)例變量。
$foo.Name將被解釋為Foo對(duì)象的getName()方法,而不是Foo對(duì)象的Name實(shí)例變量。
$foo.getBar() 等同于$foo.Bar $data.getUser("jon") 等同于$data.User("jon") data.getRequest().getServerName() 等同于 $data.Request.ServerName等同于${data.Request.ServerName}
3.變量的作用域 是從上而下往后的都會(huì)有。 踩過(guò)這個(gè)坑,描述也不太對(duì)看例子
A $monkey三、循環(huán)以上ABCDE的輸出結(jié)果是 輸出結(jié)果: 除了A是字符串顯示$monkey , 其余的都是:jerry保障額度高 B $monkeyC $monkey年度基礎(chǔ)免賠額:1萬(wàn)元
D $monkeyE $monkey住院醫(yī)療金重癥監(jiān)護(hù)費(fèi)用:不設(shè)單項(xiàng)最高年限額
#foreach ($item in $list) $foreach.index //自帶方法 : 計(jì)數(shù)從0開(kāi)始 相當(dāng)于index $foreach.hasNext //自帶方法 : 等于false代表是最后一個(gè) $foreach.count //自帶方法 : 計(jì)數(shù) 從1開(kāi)始 相對(duì)于$velocityCount $foreach.first //自帶方法 : 是否是第一個(gè) $foreach.last //自帶方法 : 是否是最后一個(gè) #if( $foreach.count > 3 ) #break //使用 #break指令在任何時(shí)候停止循環(huán) #end $velocityCount //計(jì)數(shù) 從1開(kāi)始 This is $item #end 輸出: 1 this is a //$velocityCount 計(jì)數(shù) ------------------------------- 例如數(shù)據(jù)格式 $datas的值: { {“key123":{"bonus":”1”,"name”:"aa"}}, {"key124”:{"bonus”:"2","name”:”bb"}} } $yanShi的值: { {“key123":{"title":"特殊門(mén)診醫(yī)療金","values":[600000,600000,600000]}}, {"key124”:{"title”:”住院醫(yī)療金","values”:[100000,200000,600000]}} } 方法一: #foreach ( $key in $datas.keySet()) Key: $key -> Value: $datas.get($key) #end 輸出:Key:key123 -> Value: {"bonus":”1”,"name”:"aa”} 方法二: #foreach ( $key in $bonus_datas.entrySet()) Key: $key.getKey() -> Value: $key.getValue() $yanShi.getJSONObject($key.getKey()).get(“title”) //例如循環(huán)datas里面再對(duì)應(yīng)去讀yanShi的title #end 輸出:Key:key123 -> Value: {"bonus":"1","name":"aa"} 再補(bǔ)充一些讀取不同數(shù)據(jù)的方法: .get() .getString() .getJSONArray() .getJSONObject() .getBooleanValue()四、條件語(yǔ)句
#if (condition) #elseif (condition) #else #end五、關(guān)系邏輯符
not && || #if ( ! $foo)#end #if ($foo && $foo)#end #if ($foo1 || $foo2)#end
數(shù)組的常用方法操作:
$myarray.isEmpty()數(shù)組是否為空 $myarray.size()獲取數(shù)組元素個(gè)數(shù) $myarray.get(2)獲取數(shù)組指定下標(biāo)的元素 $myarray.add()增加元素
來(lái)源參考:
中文:http://ifeve.com/apache-veloc...
英文:http://velocity.apache.org/en...
參考: http://www.blogjava.net/alexw...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/105723.html
摘要:是一個(gè)基于的模板引擎。模板中未被定義的變量將被認(rèn)為是一個(gè)字符串。公眾號(hào)回復(fù)全棧,領(lǐng)取前端,,產(chǎn)品經(jīng)理,微信小程序,等資源合集大放送。公眾號(hào)回復(fù)面試,領(lǐng)取面試實(shí)戰(zhàn)學(xué)習(xí)資源。 Velocity是一個(gè)基于java的模板引擎(template engine)。它允許任何人僅僅簡(jiǎn)單的使用模板語(yǔ)言(template language)來(lái)引用由java代碼定義的對(duì)象。 當(dāng)Velocity應(yīng)用于web...
摘要:目錄建造者模式應(yīng)用。其實(shí)不用也可以,因?yàn)椴皇呛軓?fù)雜,只是為了復(fù)習(xí)一下所學(xué)過(guò)的設(shè)計(jì)模式知識(shí)目錄工廠模式應(yīng)用。 為了提高開(kāi)發(fā)效率,通常會(huì)想辦法把一些模式固定的重復(fù)性的勞動(dòng)抽取出來(lái),以后再使用的時(shí)候,拿來(lái)主義就可以了。這樣既可以提高開(kāi)發(fā)效率,又降低了出錯(cuò)的風(fēng)險(xiǎn)。 這一思想在我們的日常工作中可以說(shuō)隨處可見(jiàn),我們完成一項(xiàng)復(fù)雜的工程,并不需要面面俱到什么都自己寫(xiě),我們完全可以利用第三方的jar包讓...
摘要:的簡(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ì)象,...
摘要:的簡(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ì)象,...
閱讀 2037·2021-11-08 13:22
閱讀 2500·2021-09-04 16:40
閱讀 1144·2021-09-03 10:29
閱讀 1709·2019-08-30 15:44
閱讀 2120·2019-08-30 11:13
閱讀 2785·2019-08-29 17:07
閱讀 1963·2019-08-29 14:22
閱讀 1244·2019-08-26 14:00