Velocity语法详解(8大语法使用示例)

Velocity语法详解(8大语法使用示例)-mikechen

Velocity简介

Velocity是一个基于Java的Web页面模版引擎,够帮我们实现页面静态化,同时将Java代码从网页中分离出来,使得页面设计者可以专注于版面的设计,而Java程序员可以集中精力编写复杂的代码。

 

Velocity基本语法

1)“#”

使用“#”用来标识Velocity的脚本语句,比如:#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等。

2)$

Velocity变量使用$,比如:$name。

3)!

变量名称前加上!,比如:$!msg,如果msg有值,将显示msg的值,如果不存在就会显示为空白,一般会推荐使用。

 

声明变量

语法格式:

#set($var = XXX)

示例:

#set(${name} = “mikechen”)

“{}”用来明确标识Velocity变量。

“!”用来强制把不存在的变量显示为空白,这样可以优化改写为:

#set(${!name} = “mikechen”)

 

条件控制

语法格式:

#if(condition)
...dosonmething...
#elseif(condition)
...dosomething...
#else
...dosomething...
#end

这个与Java的语法格式一样,只不过多一个#标识符。

示例:

#if($condition > 5)

 

condition > 5

#elseif($condition == 5)

 

condition = 5

#else

 

condition < 5

#end

 

循环

语法格式:

#foreach($item in $list)
 $item
 $velocityCount 
#end

示例:

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

#end

输出结果: 1 2 3 4 5

 

关系和逻操作符

Velocity 也具有逻辑AND, OR 和 NOT 操作符,分别对应 && 、|| 和 ! 。

如下:

#if($foo && $bar)This and that

#end

 

#parse 与 #include

#parse 与 #include 指令的功能都是在外部引用文件。

而两者的区别是:

  • #parse 会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析;
  • #include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。

 

#macro声明宏

在Velocity中也有宏的概念,可以将其作为函数来理解。

语法格式:

#macro(宏的名称 $参数1 $参数2 …)
       语句体(即函数体)
#end

示例:

#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.

 

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法