VM模板学习

  • Post author:
  • Post category:其他



1.$

是占位符号,在模板合并时,会被替换成文本值

(

注意只能是字符串

)



当定义占位符时,

$

后只能是英文字母,如

$name

,如果是数字,如

$100,

那么打印出

100

美金

2.#set()

可以为变量赋值,可以是字符串、数字、布尔值等,例如

#set($name=“hzx”)



#set($age=29)  #set($isMale=true)



可以组合起来使用,例如

your name is $name         //your name is hzx

wrong:next year your age is ($age + 1) //

这是错误的,打印结果是

next year your age is (29+1),

因为是文本占位符

#set($nextAge = $age+1) //

此时需要定义一个新的变量,

set($age++)

呢?或者

set($age = $age +1)

呢?

right:next year your age is $nextAge

3



#set()

定义

ArrayList

#set($students=[“hzx”,”caoli”,”caorui”])    //

此时定义了一个字符串数组,

JSON

串传递过来后,可以变成复杂对象来处理。

$students.get(1)

可获取第

2

个元素


4

、静态引用符

,

前面加一个

!

,以避免出现不存在的或者空的引用,如果一个变量没有值是,什么也不输出。


如果

:

hi, $newName welcome join!      //

因为该变量没有被定义,打印结果为

hi, $newName,welcome join!

hi,$!newName welcome join!      //

采用静态引用符,打印结果为

hi, welcome join!


5

、条件判断:

#if #then #else,

其中

#end if

是必须要加上的


例:

#if $customer.GoldMember


欢迎您,金牌会员

#else if $customer.YinMember


欢迎您,银牌会员

#else


欢迎您,铜牌会员

#end if

6

、循环

#foreach

,后面加上

#end

结束

#set($students=[“hzx”,”caoli”,”caorui”])

<table>

<tr><td>name</td></tr>

#foreach  $everyOne in $students

<tr><td>$everyOne</td></tr>

#end

</table>


7

、定义

VM

宏,所谓宏与函数的区别是宏在编译的时会替换,而函数不会,



如上面的打印学生列表,宏默认保存在

VM_global_library.vm

中,被称为


Velocimacros







1

:没有参数的宏

#macro(showStus)

定以了宏名称为

showStus,

当需要宏时候,只需要

#showStus()

#if($students)

如果存在学生列表

#foreach ($everyOne in $students)

遍历

$everyOne    ##

打印每个学生的姓名

#end

#end





2

:带参数的宏,接受传入的学生列表进行遍历

#macro(showStus $nameList)

此时调用该宏需要传入

1

个参数,

#showStus($students)

#if($nameList)

#foreach($everyOne in $nameList)

$everyOne

#end

#end


8



VM

中的注释,

##

用于单行煮熟,

#*

中间是注释

*#,

这样的可以多行注释。


9



Velocity

上下文,可以理解为引入

JAVA

对象,这种导入必须在

java

代码中完成


代码中,创建

org.apache.velocity.context.Context

实例获得

Velocity

上下文,使用

put

方法放到对象中。

10、VM模板在Eclipse下是黑白的,此时需要在Eclipse中:个人设置-Content Types-Text-HTML-点击Add按钮,添加*.vm。

此时VM模板会向HTML一样可以被编辑



版权声明:本文为tzszhzx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。