1.声明变量 #set($var = XXX) 右边可以是以下的内容 Variable reference String literal Property reference Method reference Number literal #set ($i=1) ArrayList #set ($arr=["yt1","t2"]) 技持算术运算符

2、注释: 单行## XXX 多行#* xxx xxxx xxxxxxxxxxxx*#

3、变量 Variables 以 "$" 开头,第一个字符必须为字母。character followed by a VTL Identifier. (a .. z or A .. Z). 变量可以包含的字符有以下内容: alphabetic (a .. z, A .. Z) numeric (0 .. 9) hyphen ("-") underscore ("_")

4、Properties $Identifier.Identifier $user.name hashtable user中的的name值.类似:user.get("name")

5、Methods object user.getName() = $user.getName()

6、Formal Reference Notation 用{}把变量名跟字符串分开

如 #set ($user="csy"} ${user}name 返回csyname

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

7、双引号 与 引号 #set ($var="helo") test"$var" 返回testhello test'$var' 返回test'$var' 可以通过设置 stringliterals.interpolate=false改变默认处理方式

8、条件语句 #if( $foo ) <strong>Velocity!</strong> #end #if($foo) #elseif() #else #end 当$foo为null或为Boolean对象的false值执行.

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

10、循环语句#foreach($var in $arrays ) // 集合包含下面三种Vector, a Hashtable or an Array #end #foreach( $product in $allProducts ) <li>$product</li> #end

#foreach( $key in $allProducts.keySet() ) <li>Key: $key -> Value: $allProducts.get($key)</li> #end

#foreach( $customer in $customerList ) <tr><td>$velocityCount</td><td>$customer.Name</td></tr> #end

11、velocityCount变量在配置文件中定义 # Default name of the loop counter # variable reference. directive.foreach.counter.name = velocityCount # Default starting value of the loop # counter variable reference. directive.foreach.counter.initial.value = 1

12、定义宏Velocimacros ,相当于函数 支持包含功能 #macro( d ) <tr><td></td></tr> #end 调用 #d()

13、带参数的宏 #macro( tablerows $color $somelist ) #foreach( $something in $somelist ) <tr><td bgcolor=$color>$something</td></tr> #end #end 调用 # tablerows (“red” “…”)

项目开发中需要注意到的要点: 1. vm中显示变量,一律加!和{},如:$!{userName}、$!{userVO.name}、$!{userVO.getName()}、$!{userMap.get(“Bob”)} 2. 合并字符串 如果变量是字符串或数值型,如 #set($user = “Tester”),则应为 “welecom$!{user}”,而不是 “welcome” + $user 3. #if($var)条件判断,当且仅当:$var存在(如果$var是Boolean/boolean型,还必须$var的值为Boolean.true/true)时,条件才成立 4. #foreach()循环的时候,有个系统变量$velocityCount可直接使用,不必自己设定额外的计数器 5. 比较字符串相等,#if($var == “test”)   #if(“test”.equals($var))均可, 6. vm中生成URL #set($userName = “Bob”) “$offerModule.setTarget('modifySingleOffer.vm').addQueryData(‘userName’, $userName).fork()” “$offerModule.setTarget('modifySingleOffer.vm').addQueryData(‘userName’, ‘Bob’).fork()” 目标大致如:http://127.0.0.1/offer/modifySingleOffer.htm?userName=Bob 7. vm中调用control $control.setTemplate("home:pageNavigator.vm").setParameter("position", "top").setParameter("pageList", $pageList) 8.其它可能会被使用到的,如定义自己的宏(定义和修改宏,需要重新启动应用服务器才生效)

velocity语法的更多相关文章

  1. 8个主要的Velocity语法使用说明

    8个主要的Velocity语法使用说明,分别是:Velocity表达式,Velocity注释,Velocity循环,Velocity条件判断,Velocity赋值,Velocity调试,Velocit ...

  2. 最新Velocity使用和Velocity语法

    Velocity语法 Velocity的使用要用到下面几个包,可以从官网下载,commons-collections.jar,velocity-1.4.jar,velocity-dept.jar; 1 ...

  3. Velocity 语法示例

    一.简介: 1)它允许任何人使用简单而强大的模板语言来引用定义在 java 代码中的对象" 2)Velocity是一个基于java的模板引擎,简称VTL(Velocity Template ...

  4. Velocity 语法(转)

    一.基本语法 1."#"用来标识Velocity的脚本语句,包括#set.#if .#else.#end.#foreach.#end.#iinclude.#parse.#macro ...

  5. 【转】Velocity 语法

    一.基本语法 1."#"用来标识Velocity的脚本语句,包括#set.#if .#else.#end.#foreach.#end.#iinclude.#parse.#macro ...

  6. Velocity语法--转载

    Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象.作为一个比较完善 ...

  7. Velocity 语法及其在springMVC中的配置

    强烈推荐具体的整合博客:http://blog.csdn.net/duqi_2009/article/details/47752169 整合文章中有几处问题: xml中配置的vm视图解析器,应该按照本 ...

  8. Velocity 语法详解

    Velocity是基于Java的模板引擎,它允许页面设计者引用Java中定义的方法.页面设计者和Java开发者能够同时使用MVC的模式开发网站,这样网页设计者能够把精力放在页面的设计上,程序员也可以把 ...

  9. Velocity语法大全

    1\ 参考地址:http://www.cnblogs.com/codingsilence/archive/2011/03/29/2146580.html

随机推荐

  1. LeetCode 292

    Nim Game You are playing the following Nim Game with your friend: There is a heap of stones on the t ...

  2. 关于Eclipse中Browser中显示html页面的总结.

    用Eclipse中的Browser显示html页面,因为"just small thing.. browser in the studio is light browser.. it can ...

  3. Oracle创建表空间、新建用户和授权

    通过pl/sql以sys用户登录到Oracle数据库上,然后执行菜单:文件/新建/命令窗口 ,打开一个命令窗口然后在该命令窗口中执行脚本创建和删除表空间 . 1.创建表空间 格式:  create t ...

  4. Java Concurrency - wait & notify, 等待通知机制

    生产者消费者问题是一个常见的多线程同步案例:一组生产者线程和一组消费者线程共享一个初始状态为空.大小为 N 的缓冲区.只有当缓冲区没满的时候,生产者才能把消息放入缓冲区,否则必须等待:只有缓冲区不空的 ...

  5. Linux 命令 - wc: 统计文件的行数、字数和字节数

    命令格式 wc [OPTION]... [FILE]... 命令格式 -c, --bytes 打印字节数. -m, --chars 打印字符数. -l, --lines 打印行数. -L, --max ...

  6. SparkSQL之数据源

    准备json文件: cat /root/1.json {"name":"Michael"} {"name":"Andy" ...

  7. WDatePicker 屏蔽onchange事件的解决办法

    受下面文章的启发,使用DatePicker自带的年月日相关的change事件,可以“勉强”实现input控件的onchange(),直接上代码: 1.第一种方式:利用DatePicker提供的年.月. ...

  8. android64位机子兼容32位.so库文件

    http://blog.csdn.net/vhawk/article/details/49964475 猴子在调用高德地图的时候,遇到一个操作系统兼容问题,异常堆栈说是找不到so库文件,猴子就不懂了, ...

  9. stl中的map数据类型

    1.1 STL map 1.1.1 背景 关联容器使用键(key)来存储访问读取元素,而顺序容器则通过元素在容器中的位置存储和访问元素. 常见的顺序容器有:vector.list.deque.stac ...

  10. NSURLSession的使用(1)

    一.创建一个Session,并且对其进行初始化 包含三种创建方式:   1.+ (NSURLSession *)sharedSession  单例模式 2.+ (NSURLSession *)sess ...