Velocity 模板引擎介绍

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

引入Velocity的发布包

http://velocity.apache.org/网站上下载最新的Velocity,引入jar包。

Velocity基本语法

"#"用来标识Velocity的关键字,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;

"$"用来标识Velocity的变量;如:$i$msg$TagUtil.options(...)等。

"{}"用来明确标识Velocity变量;比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。

"!"用来强制把不存在的变量显示为空白。如:当找不到username的时候,$username返回字符串"$username",而$!username返回空字符串""

Velocity语法使用

一、变量定义

#set($name ="velocity")

等号后面的字符串 Velocity 引擎将重新解析,例如出现以$开始的字符串时,将做变量的替换。

二、变量赋值

#set($hello ="hello $name")

上面的这个等式将会给$hello赋值为"velocity"

三、循环

#foreach($element in $list)
<span>$!element</span><br>
#end

Velocity引擎会将list中的值循环赋给element变量

四、条件语句

条件语句的语法如下:

#if(condition)
...
#elseif(condition)

#else

#end

五、关系操作符

Velocity引擎提供了AND、OR和NOT操作符,分别对应&&、||和!例如:

#if($foo && $bar)
...
#end

六、宏

Velocity中的宏可以理解为函数定义。定义的语法如下:

#macro(macroName arg1 arg2 ...)
...
#end

调用这个宏的语法是:

#macroName(arg1 arg2 ...)

这里的参数之间使用空格隔开,下面是定义和使用Velocity宏的例子:

#macro(sayHello $name)
hello $name
#end #sayHello("velocity")

输出的结果为hello velocity

七、#parse 和 #include

#parse和#include指令的功能都是在外部引用文件,而两者的区别是,#parse会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。分别看以下例子:

foo.vm文件:

#set($name = "velocity")

parse.vm:

#parse("foo.vm")

输出结果为:velocity

include.vm:

#include("foo.vm")

输出结果为:#set($name = "velocity")

八、注释

单行注释

##单行注释

多行注释

#*
多行注释
*#

九、单双引号

单引号不解析引用内容,双引号解析引用内容

#set ($var="hello")

'$var'  ## 结果为:$var
"$var" ## 结果为:hello

十、属性

通过'.'操作符使用变量内容

$Identifier.Identifier
$user.name

本文参考

http://www.ibm.com/developerworks/cn/java/j-lo-velocity1/

http://outofmemory.cn/code-snippet/1623/Velocity-syntax-usage-summary

Velocity模板引擎语法的更多相关文章

  1. 【转载】Velocity模板引擎的介绍和基本的模板语言语法使用

    原文地址http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax- ...

  2. Velocity模板引擎入门

    类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...

  3. 使用 Velocity 模板引擎快速生成代码(zhuan)

    http://www.ibm.com/developerworks/cn/java/j-lo-velocity1/ ****************************************** ...

  4. 转 如何使用velocity模板引擎开发网站

    基于 Java 的网站开发,很多人都采用 JSP 作为前端网页制作的技术,尤其在是国内.这种技术通常有一些问题,我试想一下我们是怎样开发网站的,通常有几种方法: 1:功能确定后,由美工设计网页的UI( ...

  5. 使用Velocity 模板引擎快速生成代码

    Velocity 模板引擎介绍 在现今的软件开发过程中,软件开发人员将更多的精力投入在了重复的相似劳动中.特别是在如今特别流行的MVC架构模式中,软件各个层次的功能更加独立,同时代码的相似度也更加高. ...

  6. Velocity模板引擎介绍

    整理下Velocity使用方法,整理比较详细用例 1 Velocity基础语法 1.1 用户和开发人员参考文档 http://velocity.apache.org/engine/releases/v ...

  7. velocity模板引擎学习(4)-在standalone的java application中使用velocity及velocity-tools

    通常velocity是配合spring mvc之类的框架在web中使用,但velocity本身其实对运行环境没有过多的限制,在单独的java application中也可以独立使用,下面演示了利用ve ...

  8. velocity模板引擎学习(3)-异常处理

    按上回继续,前面写过一篇Spring MVC下的异常处理.及Spring MVC下的ajax异常处理,今天看下换成velocity模板引擎后,如何处理异常页面: 一.404错误.500错误 <e ...

  9. Velocity模板引擎笔记

    模板引擎中判断对象是否为空: #if(!${jsonObj.data.buyerName} || ${jsonObj.data.buyerName} == '')         <p>采 ...

随机推荐

  1. 通过Spring Mail Api发送邮件

    使用Java Mail API来发送邮件也很容易实现,但是最近公司一个同事封装的邮件API实在让我无法接受,于是便打算改用Spring Mail API来发送邮件,顺便记录下这篇文章. [Spring ...

  2. 测试经验总结(“二次开发”)

    参考原文地址:http://www.51testing.com/html/86/n-3601786.html 不知不觉已经工作五年时间了,从茁壮.康拓普.利鑫云端到现在的惠卡世纪,经历过机顶盒软件(嵌 ...

  3. Loadrunner脚本录制常见问题整理

    1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开Inter ...

  4. 使用ajax和history.pushState无刷新改变页面URL

    表现 如果你使用chrome或者firefox等浏览器访问本博客.github.com.plus.google.com等网站时,细心的你会发现页面之间的点击是通过ajax异步请求的,同时页面的URL发 ...

  5. 【HDU】1814 Peaceful Commission

    http://acm.hdu.edu.cn/showproblem.php?pid=1814 题意:n个2人组,编号分别为2n和2n+1,每个组选一个人出来,且给出m条关系(x,y)使得选了x就不能选 ...

  6. Using Maven to generate a Java Project or Web project

    I often to generate a Java project or Web project with Eclipse tool. Well, I have no idea when I wan ...

  7. minicom使用

    http://blog.chinaunix.net/uid-9525959-id-2001815.html 创建log文件 : minicom -C my_capturefile

  8. android-发送短信

  9. js 进度条,可实现结束和重新开始

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. mysql语句中有引号的问题解决方案

    在mysql的查询.修改.插入.删除的sql语句里有引号如何处理? 例如: <? $name = "my name is xcxc"; $people = "i'm ...