Velocity模板引擎语法
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模板引擎语法的更多相关文章
- 【转载】Velocity模板引擎的介绍和基本的模板语言语法使用
原文地址http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax- ...
- Velocity模板引擎入门
类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...
- 使用 Velocity 模板引擎快速生成代码(zhuan)
http://www.ibm.com/developerworks/cn/java/j-lo-velocity1/ ****************************************** ...
- 转 如何使用velocity模板引擎开发网站
基于 Java 的网站开发,很多人都采用 JSP 作为前端网页制作的技术,尤其在是国内.这种技术通常有一些问题,我试想一下我们是怎样开发网站的,通常有几种方法: 1:功能确定后,由美工设计网页的UI( ...
- 使用Velocity 模板引擎快速生成代码
Velocity 模板引擎介绍 在现今的软件开发过程中,软件开发人员将更多的精力投入在了重复的相似劳动中.特别是在如今特别流行的MVC架构模式中,软件各个层次的功能更加独立,同时代码的相似度也更加高. ...
- Velocity模板引擎介绍
整理下Velocity使用方法,整理比较详细用例 1 Velocity基础语法 1.1 用户和开发人员参考文档 http://velocity.apache.org/engine/releases/v ...
- velocity模板引擎学习(4)-在standalone的java application中使用velocity及velocity-tools
通常velocity是配合spring mvc之类的框架在web中使用,但velocity本身其实对运行环境没有过多的限制,在单独的java application中也可以独立使用,下面演示了利用ve ...
- velocity模板引擎学习(3)-异常处理
按上回继续,前面写过一篇Spring MVC下的异常处理.及Spring MVC下的ajax异常处理,今天看下换成velocity模板引擎后,如何处理异常页面: 一.404错误.500错误 <e ...
- Velocity模板引擎笔记
模板引擎中判断对象是否为空: #if(!${jsonObj.data.buyerName} || ${jsonObj.data.buyerName} == '') <p>采 ...
随机推荐
- URAL 1635. Mnemonics and Palindromes(DP)
题目链接 本来用区间DP,3次方的复杂度,T了,看了看题解,降维,直接二次方的复杂度可以解.然后折腾一下输出路径..终于过了. #include <cstring> #include &l ...
- linq中join的用法
join方法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>( this IEnu ...
- js的小效果-图片放大镜效果
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- poj 3254 状压dp入门题
1.poj 3254 Corn Fields 状态压缩dp入门题 2.总结:二进制实在巧妙,以前从来没想过可以这样用. 题意:n行m列,1表示肥沃,0表示贫瘠,把牛放在肥沃处,要求所有牛不能相 ...
- Linux多线程实例练习 - pthread_cancel()
Linux多线程实例练习 - pthread_cancel 1.代码 xx_pthread_cancel.c #include <pthread.h> #include <stdio ...
- Linux多线程实例练习 - pthread_exit() 与 pthread_join()
Linux多线程实例练习 - pthread_exit 与 pthread_join pthread_exit():终止当前线程 void pthread_exit(void* retval); pt ...
- Base64编码简介
基本概念 Base64这个术语最初是在“MIME内容传输编码规范”中提出的.Base64不是一种加密算法,虽然编码后的字符串看起来有点加密的赶脚.它实际上是一种“二进制到文本”的编码方法,它能 ...
- android-ImageView及其子类
一.知识概要 ImageView继承自View,能显示任何Drawable对象; ImageView支持的常用XML属性及相关方法: android:adjustViewBounds 设置Ima ...
- SQL server 测试
设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表 ...
- 数组遍历map和each使用
<body> <input type="/> <input type="/> <input type="/> </b ...