Velocity模板学习

Velocity测试Demo

Velocity 介绍
Velocity是一个基于java的模板引擎。它允许任何人使用简单但功能强大的模板语言引用Java代码中定义的对象。

当Velocity用于web开发时,web设计人员可以与Java程序员并行工作,根据模型-视图-控制器(MVC)模型开发web站点,这意味着web页面设计人员可以只专注于创建看起来不错的站点,而程序员可以只专注于编写一流的代码。Velocity将Java代码从web页面中分离出来,使web站点在其生命周期内更具可维护性,并为Java服务器页面(jsp)或PHP提供了一个可行的替代方案。

Velocity的功能远远超出了web的范围;例如,它可以用来从模板生成SQL、PostScript和XML。它既可以作为生成源代码和报告的独立实用程序使用,也可以作为其他系统的集成组件使用。例如,Velocity为各种web框架提供模板服务,使它们能够使用视图引擎,以便根据真正的MVC模型开发web应用程序。

Velocity 主要使用场景
Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性。
源代码生成:Velocity 可以被用来生成 Java 代码、SQL 或者 PostScript。
自动 Email:很多软件的用户注册、密码提醒或者报表都是使用 Velocity 来自动生成的。
转换 xml。
Velocity语法使用
在 Velocity 中所有的关键字都是以#开头的,而所有的变量则是以$开头。Velocity 的语法类似于 JSP 中的 JSTL,甚至可以定义类似于函数的宏,下面来看看具体的语法规则。

“#”用来标识velocity的关键字,包括#set、#if、#else、#end 、#foreach、#include、#parse、 #macro
" " 用 来 标 识 v e l o c i t y 的 变 量 , 如 "用来标识velocity的变量,如 "velocityi、 a b c 、 abc、 abcobj.attr等。

“{}”用来明确标识velocity变量,比如在页面中,页面中有一个 s o m e o n e n a m e , 此 时 , v e l o c i t y 把 s o m e o n e n a m e 作 为 变 量 名 , 若 我 们 还 有 一 个 变 量 是 s o m e o n e , 我 们 想 在 后 面 拼 接 字 符 串 " n a m e " , 就 可 以 写 成 someonename,此时,velocity把someonename作为变量名,若我们还有一个变量是someone,我们想在后面拼接字符串"name",就可以写成 someonename,velocitysomeonenamesomeone"name",{someone}name。
“!”如果一个变量不存在,加叹号会显示为空白。例如:找不到 u s e r n a m e 的 时 候 , username的时候, usernameusername会返回字符串“ u s e r n a m e ” , 而 username”,而 username,!username会返回空字符串。

1.变量定义

#set($name = “velocity”)

#set($hello = “hello $name”)

${hello}
$hello

2.变量的使用
在模板文件中使用name或者name或者{name} 来使用定义的变量。推荐使用 name这种格式,因为在模板中同时可能定义了类似name这种格式,因为在模板中同时可能定义了类似name 和 names的两个变量,如果不选用大括号的话,引擎就没有办法正确识别names的两个变量,如果不选用大括号的话,引擎就没有办法正确识别names 这个变量。
#set($name =“ricky”)

Welcome $name to velocity.com

3.循环
在 Velocity 中循环语句的语法结构如下:
#foreach($item in $list)

$!item

#end

4.条件语句
条件语句的语法如下:
#if(condition)

#elseif(condition)

#else

#end

5.关系操作符
velocity中的与非门操作
#if($a || $b)

#end

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

#macro(macroName arg1 arg2 …)

#end

调用这个宏的语法是:
#macroName(arg1 arg2 …)

这里的参数之间使用空格隔开,下面是定义和使用 Velocity 宏的例子:
#macro(sayHello $name)

hello $name #end

#sayHello(“velocity”)

7.#parse和#include
这两个指令的功能是在外部引用文件,区别是#parse会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include是将引入文件当成资源文件,原封不动的以文本输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值