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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

velocity参数重新赋值_Velocity 语法详解

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 velocity参数重新赋值_Velocity 语法详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Velocity是基于Java的模板引擎,它允許頁面設計者引用Java中定義的方法。頁面設計者和Java開發者能夠同時使用MVC的模式開發網站,這樣網頁設計者能夠把精力放在頁面的設計上,程序員也可以把精力放在代碼開發上。Velocity把Java代碼從Web頁面中分離, 使網站可維護性更強,同時也在Java服務器頁面(JSPs)或者PHP中提供了可視化交互的選擇。

Velocity 可以被用在以下場景中:

Web 應用:開發者在不使用 JSP 的情況下,可以用 Velocity 讓 HTML 具有動態內容的特性。

源代碼生成:Velocity 可以被用來生成 Java 代碼、SQL 或者 PostScript。有很多開源和商業開發的軟件是使用 Velocity 來開發的。

自動 Email:很多軟件的用戶注冊、密碼提醒或者報表都是使用 Velocity 來自動生成的。使用 Velocity 可以在文本文件里面生成郵件內容,而不是在 Java 代碼中拼接字符串。

轉換 xml:Velocity 提供一個叫 Anakia 的 ant 任務,可以讀取 XML 文件并讓它能夠被 Velocity 模板讀取。一個比較普遍的應用是將 xdoc 文檔轉換成帶樣式的 HTML 文件。

一、變量

1. 變量定義

velocity 中的變量是弱類型,大小寫敏感。

#set($name="velocity")

當使用 set 指令時,等號后面引號中的字面字符串將解析和重新解析,例如出現以? $ 開始的字符串時,將做變量的替換。

#set($hello="hello $name")

上面的這個等式將會給 $hello 賦值為“hello velocity”

2. 變量使用

在模板文件中使用 $name 或者 ${name} 來使用定義的變量。推薦使用?${name} 這種格式,因為在模板中同時可能定義了類似 $name?和 $names?的兩個變量,如果不選用大括號的話,引擎就沒有辦法正確識別 $names?這個變量。

對于一個復雜對象類型的變量,例如 $person,可以使用 ${person.name}?來訪問 person 的 name 屬性。值得注意的是,這里的 ${person.name}?并不是直接訪問 person 的 name 屬性,而是訪問 person 的 getName() 方法,所以 ${person.name}?和${person.getName()}?是一樣的。

3. 變量賦值

對于 Velocity 來說,變量是弱數據類型的,可以在賦了一個 String 給變量之后再賦一個數字或者數組給它。

賦值的左邊必須是一個變量或者屬性引用。

賦值的右邊可以是以下6種類型之一:

變量引用

字面字符串

屬性引用

方法引用

字面數字

數組列表

#set($foo = $bar)

#set($foo ="hello")

#set($foo.name = $bar.name)

#set($foo.name = $bar.getName($arg))

#set($foo = 123)

#set($foo = ["foo",$bar])

注:(1)如果上述例子中右值為 null,則左值不會被賦值,也就是說會保留以前的值。

(2)Velocity 模板中未被定義的變量將會認為是字符串。例如:

#set($foo = $bar)

$foo

輸出結果:

$foo

二、循環語句

#set($list=["velocity","freemarker","jsp"])

#foreach($element in $list)

${velocityCount}. This is ${element}

#end

輸出結果:

1. This is velocity

2. This is freemarker

3. This is jsp

Velocity 引擎會將 list 中的值循環賦給 element 變量,同時會創建一個 $velocityCount?的變量作為計數,從 1 開始,每次循環都會加 1。

另外,Velocity 中還提供了得到循環次數的方法,?$velocityCount 變量的名字是 Velocity 默認的名字。

#foreach($i in [1..3])

$i

#end

輸出結果:

1 2 3

三、條件語句

#if($condition > 5)

condition > 5

#elseif($condition == 5)

condition = 5

#else

condition < 5

#end

輸出結果:

condition = 5

四、關系操作符

Velocity 引擎提供了 AND、OR 和 NOT 操作符,分別對應 && 、|| 和 ! 。

#set($a=true)

#set($b=false)

#if($a && $b)

This is all true.

#end

五、宏

Velocity 中的宏可以理解為函數定義。

(1)宏的定義:

#macro(宏的名稱 $參數1 $參數2 ...)

語句體(即函數體)

#end

(2)宏的調用:

#宏的名稱($參數1 $參數2 ...)

注意:參數之間用空格隔開

(3)示例:

#macro(func $args1 $args2)

This is a macro. The argument have ${args1} and ${args2}.

#end

#func("hello" "world")

輸出結果:

This is a macro. The argument have hello and world.

六、#parse 與 #include

#parse 與 #include 指令的功能都是在外部引用文件,而兩者的區別是,#parse 會將引用的內容當成類似于源碼文件,會將內容在引入的地方進行解析,#include 是將引入文件當成資源文件,會將引入內容原封不動地以文本輸出。

示例:

foo.vm 文件:

#set($name="velocity")

$name

(1)parse.vm 文件:

#parse("foo.vm")

輸出結果:

velocity

(2)include.vm 文件

#include("foo.vm")

輸出結果:

#set($name="velocity") $name

總結

以上是生活随笔為你收集整理的velocity参数重新赋值_Velocity 语法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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