基于Java的模板框架-Velocity(1)

  • 什么是Velocity

Velocity是一个基于java的模板引擎。它允许Web页面设计者去引用java代码中的方法。Web设计师可以和java工程师并行地开发遵循MVC模式的web站点,这样意味着web页面设计人员可以专注地创建一个良好设计的站点,而程序员可以专注编写高质量的代码。Velocity将Java代码从web页面剥离,使得web站点的可维护性更强,并可同时适应于JSP和PHP环境。 

Velocity可以通过模板生成web页面,SQL语句,PostScript或者其他输出。她也可以作为生成源代码和报表的独立工具,又可以作为一个其他系统可集成组件。完成后,Velocity将为Turbine web应用框架提供模板服务。Velocity+Turbine将提供模板服务,该模板服务将允许搭建真正的MVC web应用。 

  • Velocity能为我做什么?

假设你是一个专门销售陶土的在线商店的页面设计师。让我们叫他“在线陶土店”。生意很旺,顾客订购各种各样的数量可观的陶土。他们使用用户名和口令登录你的网站,他们可以在上面浏览订单、购买陶土。这时,在售的一种兵马俑陶很畅销。而很少一部分顾客总是固定地购买一种亮红陶,它虽然在售,但因为买的人少,所以总会被挤到页面的角落里。因为在你的数据库中,记录了所有的顾客,这时问题来了:为什么不使用Velocity来把那些陶土向对它们感兴趣的顾客显示在显眼的位置呢?

 

 为在线访客定制个性化页面,对于Veloctiy轻而易举。作为一个“陶土屋”的网站设计师,你需要去制作供已登录用户浏览的网页。 

你会见你们公司的一些软件工程师,并且,每个人都赞成使用$cusotmer来保存当前登录用户的相关信息,使用$mudsOnSpecial 表示当前在售的所有陶土种类。$flogger对象包含了级别提升的方法。对于手头的任务,让我们只关注自己与这三个引用(reference)。记住,你不需要去担心软件工程师怎么从数据库中获取必要的信息,你只需哟知道它是在工作着的。这就可以让你和软件工程师都可以开展各自的工作。 

你可以将下列VTL(Velocity Template Language )语句嵌入web页面:

 

关于foreach语句的精确描述将在稍后进行更深的阐述;重要的是这段短小的脚本能够在你的网站上产生的效果。当一个对亮红陶有兴趣的顾客登入后,如果有亮红陶有卖,就应该让顾客在显著的位置看到它。而其他有兵马俑陶购买历史的顾客登录的时候,兵马俑陶的将被展示在前面居中的位置。Velocity的适应性强大到仅受限于你的创作力。 

下面将在VTL介绍中介绍其他一些Velocity成员,它们将给你力量与韧性使你网站成为一个互动网站(web presence),随着你对这些成员的熟悉,你将会开始释放Velocity的力量。 

  • Velocity模板语言VTL(Velocity Template Language)介绍

Velocity模板语言(VTL)打算提供最容易、最简单、最干净的向web页面整合动态内容的方法。无论一个web页面开发者是只具有极少还是根本不具有任何编程经验都可以很快地使用VTL在web网站整合动态内容。 

VTL使用引用(references)在web网站上嵌入动态内容,变量就是引用的一种。变量是一种可以指代在Java代码中定义的任何东西,或者可以从它自己的web页面的VTL声明中得到值。这里是一个在HTML文档中嵌入VTL声明的例子:

 

这个VTL声明,向所有的VTL声明一样,使用#号开头,包含一个set指令。当一个在线访客请求你的web页面,Velocity模板引擎将在你的web页面搜索所有的#号,然后确认哪些是VTL声明的开始标记,哪些#号跟VTL没有关系。 

#号后面紧跟着set指令,set指令使用一个带括弧的表达式--一个对变量进行赋值的等式,变量列在左边,它的值列在右边,中间用等号=分割。 

上面的例子中,变量是$a,值是"Velocity"。这个变量,像其他所有的引用(reference),使用$符号开头。字符类型的值总是使用引号引起来,单引号和双引号都可以。单引号保证被引用的值将被原封不动地赋给变量,而双引号允许你插入velocity引用和指令,比如"Hello $name",在该字串赋值给=号左边的变量前,$name的位置将会被它的当前值所替代。 

这句经验之谈能对于更好地理解Velocity是如何工作的应该有所帮助:$开头的引用用来得到什么,#开头的指令用来干些什么。 

在上面的例子里,#set是用来给变量赋值。变量$a能在模板中用来输出"Velocity"。

 

(未完待续)

[参见原文:http://velocity.apache.org/engine/devel/user-guide.html#What_is_Velocity]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值