关于 velocity 的学习

 

 最近在开发基于EasyJWeb框架的项目,而页面采用的html,velocity的脚本语法。刚开始接触velocity的时候,一头雾水,现在看看它语法,感觉不难。现在跟大家分享一下常用的语法。

 

基本语法

1、"#"用来标识Velocity 的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro 等;

如:

 

#if(!student.name)
 <span>1</span>
#else
 <span>2<span>
#end

 

 

2、"$"用来标识一个对象(或理解为变量);

如:$i、$msg、$TagUtil.options(...)等。

 

 

3、"{}"用来明确标识Velocity 变量。

#set ($user="GG"}

${user}name

返回csyname

 

4、声明:#set ($var=XXX)

左边可以是以下的内容

Variable reference  变量

String literal   字符串

Property reference  属性

Method reference   方法

Number literal #set ($i=1) 数字

ArrayList #set ($arr=["yt1","t2"])  字符串

算术运算符

 

 

5、注释:

单行  :## XXX

多行  :#* xxx

                xxxx

              xxxxxxxxxxxx*#

 

6、变量的定义

以"$" 开头,第一个字符必须为字母

变量可以包含的字符有以下内容:

alphabetic (a .. z, A .. Z)

numeric (0 .. 9)

hyphen ("")

underscore ("_")

 

7、字段的取值

$student.name

类似:student.get("name")

 

8、方法

object student.getName() = $student.getName()

 

9、$与$!的区别

当找不到username 的时候,$username 返回字符串"$username",而$!username 返回空字符串 ""

 

10、双引号与引号

  #set ($var="heloworld")

   test"$var" 返回testheloworld

   test'$var' 返回test'$var'

可以通过设置stringliterals.interpolate=false 改变默认处理方式

 

11、逻辑运算符:==  、 &&  、||  、!

 

12、循环语句

 #foreach($var in $arrays ) //

#foreach( $info in $infos)
<span>$!info.title</span><br>
#end

 

13、#macro(macroName)#end 脚本函数(宏)调用

定义宏Velocimacros ,相当于函数支持包含功能

#macro( d )

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

#end

调用

#d()

函数(宏)定义,一般放在最前面

#macro(orderPic $type)
#if ($orderField.equals($type))
<img src="/images/ico/${orderType}.gif">
#end
#end

 

具体的调用如:<font color="#FFFFFF">头衔#orderPic("title")</font>

 

14、包含文件#inclue("模板文件名")或#parse("模板文件名")

主要用于处理具有相同内容的页面,比如每个网站的顶部或尾部内容。

parse 与include 的区别在于,若包含的文件中有Velocity 脚本标签,将会进一步解析,

而include 将原样显示。

 

15、带参数的宏

#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(html,velocity)