當前位置:首頁 » 網頁前端 » velocityweb
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

velocityweb

發布時間: 2022-07-29 12:52:26

㈠ jquery怎麼使用velocity

Velocity的基本用法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Velocity概述

Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。當Velocity 應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也 為我們在JSP和PHP之外又提供了一種可選的方案。
Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板 (template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。 Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。

一、基本語法

1、"#"用來標識Velocity的腳本語句,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;
如:
#if($info.imgs)
<img src="$info.imgs" border=0>
#else
<img src="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的腳本及功能,但我們不推薦你在界面模板中使用過多過復雜的腳本表達方式,在萬不得已的情況下,不要在界面模板中加入任何復雜的邏輯,更不要在界面模板中加入變數聲明、邏輯運算符等等。
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 腳本函數(宏)調用,不推薦在界面模板中大量使用。 Velocity中的宏我們可以理解為函數。 ①宏的定義 #macro(宏的名稱 $參數1 $參數2 …) 語句體(即函數體) #end
②宏的調用 #宏的名稱($參數1 $參數2 …)
說明:參數之間用空格隔開。
如:在使用EasyJWeb Tools快速生成的添刪改查示例中,可以點擊列表的標題欄進行升降排序顯示,這是我們在EasyJWeb應用中經常看到的一個排序狀態顯示的模板內容。
函數(宏)定義,一般放在最前面
#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="http://images.cnblogs.com/ico/${orderType}.gif">
#end
#end
具體的調用如:<font color="#FFFFFF">頭銜#orderPic("title")</font>

5、包含文件#inclue("模板文件名")或#parse("模板文件名")
主要用於處理具有相同內容的頁面,比如每個網站的頂部或尾部內容。
如:#parse("/blog/top.html")或#include("/blog/top.html")
區別:
1 若包含的文件中有Velocity腳本標簽,將會進一步解析,而include將原樣
顯示。
2 #parse只能指定單個對象。而#include可以有多個
示範代碼:
#include ("one.gif", "two.txt", "three.htm" )
#parse ("parsefoo.vm")
三、關於#set的使用

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

四、Velocity腳本語法摘要

聲明:#set ($var=XXX)
變數引用,字面字元串,屬性引用,方法引用,字面數字,數組列表。
#set( $monkey = $bill ) ## variable reference
#set( $monkey.Friend = "monica" ) ## string
#set( $monkey.Blame = $whitehouse.Leak ) ## property reference
#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference
#set( $monkey.Number = 123 ) ##number
#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList
算術運算符
#set ( $foo = $bar + 3 ) #set ( $foo = $bar - 4 ) #set ( $foo = $bar * 6 ) #set ( $foo = $bar / 2 )

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( $proct in $allProcts )
<li>$proct</li>
#end

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

#foreach( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
語句的嵌套 #foreach ($element in $list) ## inner foreach 內循環 #foreach ($element in $list) This is $element. $velocityCount <br>inner<br> #end ## inner foreach 內循環結束 ## outer foreach This is $element. $velocityCount <br>outer<br> #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 停止執行並返回
停止執行模板引擎並返回,把它應用於debug是很有幫助的。

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] )

18、轉義字元
如果reference被定義,兩個』\』意味著輸出一個』\』,如果未被定義,剛按原樣輸出。 #set($email = "foo" ) $email \$email \\$email \\\$email
輸出: foo $email....

㈡ velocity是什麼 freeMarker是什麼 實用嗎

Velocity是一種Java模版引擎技術,也是MVC架構的一種實現,類似Struts,但它更多的是關注在Model和 View之間。
FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。與web容器無關,主要用在表現層,也可以用於生成XML,JSP或Java。在開發CMS系統時,用FreeMarker編輯模版,生成頁面代碼也是不錯的選擇。
個人認為Freemarker還是比較實用的,Velocity有很多其他技術可替代,如Struts、SpringMVC。

㈢ 怎樣配置velocity+webwork+spring+ibatis

你好
樓主。
很幸運的看到你的問題。
但是又很遺憾到現在還沒有人回答你的問題。也可能你現在已經在別的地方找到了答案,那就得恭喜你啦。
對於你的問題我愛莫能助!
可能是你問的問題有些專業了。或者別人沒有遇到或者接觸過你的問題,所以幫不了你。建議你去問題的相關論壇去求助,那裡的人通常比較多,也比較熱心,可能能快點幫你解決問題。
希望我的回答也能夠幫到你!
祝你好運。
最後祝您全家幸福健康快樂每一天!

㈣ 如何在web項目中引用velocity逡

Velocity是可以在html中使用的,也是網頁前端人員都要要熟悉的一種模版引擎;
Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 Velocity的能力遠不止web站點開發這個領域,例如,它可以從模板(template)產生SQL和PostScript、XML,它也可以被當作一個獨立工具來產生源代碼和報告,或者作為其他系統的集成組件使用。Velocity也可以為Turbine web開發架構提供模板服務(template service)。Velocity+Turbine提供一個模板服務的方式允許一個web應用以一個真正的MVC模型進行開發。
Velocity使用,就是在這個模版內通過它現有語法和函數,然後在html中應用,一般我們結合具體的案例來使用Velocity,這里我舉個簡單的小例子:
<td colspan="3" class="tdContent2">$!obj.getDealInfo().replaceAll("\r\n", "<br></td>
Velocity就是通過這樣來實現小的換行的。

㈤ web頁面怎麼使用velocity

Velocity是可以在html中使用的,也是網頁前端人員都要要熟悉的一種模版引擎; Velocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於w...

㈥ velocity是怎麼用的

Velocity是一個基於java的模板引擎(template engine)。

官方網站:http://velocity.apache.org/

#formSingleSelectDictionary("accountingForm" "$!{info.accountingForm}" $!{dicData.dicAccountingForm} " class='combox' style='width:60' " "--請選擇--")

#formSingleSelectDictionary : 調用這個 formSingleSelectDictionary 方法
傳參數為 括弧裡面的

$!{info.accountingForm} : 取 info 這個對象的屬性

稍微翻下文檔就能開始用了。

加油。

㈦ velocity 模板之間的跳轉

通過 JSP 跳轉
或者
js語言
或者自定義標簽