Velocity #set指令

      #set指令用于向一个变量或者属性赋值。其格式为 #set($foo="bar")或者#set($foo.bar=$test) 

      LHS必须是一个变量或者属性,RHS必须是以下7种类型之一:变量、属性、字符串字面值、数字字面值、方法、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)就可以获得值" #set( $test.f = {"name":"car", "color":"red"}) 访问时使用$test.f.get("color")就可以获得值"red"

      默认情况下,RHS是null的话,将不会对LHS进行赋值,LHS会保持原来的值。所以一个引用一旦被创建,一般是无法移除的。

      *在使用#set时,字符串的字面值如果放在双引号里,将会被解析。比如#set( $test.a = "abc"), 那么$test.a的值就是abc。而#set( $test.b = "$test.a")等价于#set( $test.b=$test.a )。但是#set( $test.b = '$test.a') 的结果却是把$test.a这个字符串字面值赋值给$test.b

     当遇到需要输出大量的字符串字面值,而不是输出它们的实际值的情况时,可以使用#literal() ... #end来包围VTL Code。

你可能感兴趣的:(velocity,模板,#set)