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