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的语法格式一样,只不过多一个#标识符。
示例:
condition > 5
condition = 5
condition < 5
循环
语法格式:
#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面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》