velocity参数重新赋值_Velocity(5)——#set指令
引用可以讓模板設計者生成動態(tài)內(nèi)容,而指令允許設計者真正的負責頁面的展現(xiàn)和內(nèi)容。
指令是以#開頭,后面緊跟一個關鍵字,比如if,else,foreach等。而這個關鍵字,是可以被放在{}中間的。這是規(guī)范的寫法,但是可能不好看。
#set
#set指令用于向一個變量或者屬性賦值。其格式為 #set($foo="bar")或者#set($foo.bar=$test)。
LHS必須是一個變量或者屬性,RHS必須是以下7種類型之一:變量、屬性、字符串字面值、數(shù)字字面值、方法、ArrayList、Map。比如:
#set( $test = $test2 + 3)
#set( $test.a = "abc")
#set( $test.b = 1)
#set( $test.c = $test.a)
#set( $test.d = $test.calc("1+1"))
#set( $test.e = ["123", "abc", $test.c]) 訪問時使用$test.e.get(0)就可以獲得值"123"
#set( $test.f = {"name":"car", "color":"red"}) 訪問時使用$test.f.get("color")就可以獲得值"red"
默認情況下,RHS是null的話,將不會對LHS進行賦值,LHS會保持原來的值。所以一個引用一旦被創(chuàng)建,一般是無法移除的。但是可以修改Velocity的某個配置,改變這一現(xiàn)象。在#foreach里進行判斷時,要特別注意。
在使用#set時,字符串的字面值如果放在雙引號里,將會被解析。比如#set( $test.a = "abc"), 那么$test.a的值就是abc。而#set( $test.b = "$test.a")等價于#set( $test.b=$test.a )。但是#set( $test.b = '$test.a') 的結(jié)果卻是把$test.a這個字符串字面值賦值給$test.b。
當遇到需要輸出大量的字符串字面值,而不是輸出它們的實際值的情況時,可以使用#literal() ... #end來包圍VTL Code。
總結(jié)
以上是生活随笔為你收集整理的velocity参数重新赋值_Velocity(5)——#set指令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新中国新能源汽车品牌质量排名出炉 比亚
- 下一篇: 三面求对称二叉树_字节跳动后端实习面经,