您的位置: 首页 > 技术文档 > 网络编程 > 使用 Velocity 模板引擎开发网站
DataGrid入门经典 回到列表 理解与掌握ACCESS-经验谈
 使用 Velocity 模板引擎开发网站

作者:eiffelqiu 时间: 2003-09-30 文档类型:转载 来自:牧羊人手记

第 1 页 引言
第 2 页 网站制作的模式
第 3 页 Velocity 如何工作?
第 4 页 Velocity 的工作原理:

这个程序很简单,但是它能让你清楚的了解 Velocity 的基本工作原理。程序中其他部分基本上很固定,最主要的部分在以下代码

  这里 Velocity 获取模板文件,得到模板引用

/* next, get the Template */
Template t = ve.getTemplate( "hellosite.vm" );

  这里,初始化环境,并将数据放入环境

/* create a context and add data */

VelocityContext context = new VelocityContext();

context.put("name", "Eiffel Qiu");

context.put("site", "http://www.eiffelqiu.com");

  其他代码比较固定,但是也非常重要,但是对于每个应用来说写法都很相同:
这是初始化 Velocity 模板引擎

/* first, get and initialize an engine */

VelocityEngine ve = new VelocityEngine();
ve.init();

  这是用来将环境变量和输出部分结合。

StringWriter writer = new StringWriter();
t.merge( context, writer );
/* show the World */
System.out.println( writer.toString() );

  记住,这在将来的 servlet 应用中会有所区别,因为网页输出并不和命令行输出相同,如果用于网页输出,将并不通过 System.out 输出。这会在以后的教程中给大家解释的。

那让我来总结一下 Velocity 真正的工作原理
  Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site, name 变量,它们在网页上就是 $name ,$site 。 这样只要双方约定好了变量名字,那么双方就可以独立工作了。 无论页面如何变化,只要变量名不变,那么后台程序就无需改动,前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。

  你会发现简单变量名通常无法满足网页制作显示数据的需要,比如我们经常会循环显示一些数据集,或者是根据一些数据的值来决定如何显示下一步的数据, Velocity 同样提供了循环,判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端网页制作人员使用,这个模板语言足够简单(大部分懂得 javascript 的人就可以很快掌握,其实它比 javascript 要简单的多),当然这种简单是刻意的,因为它不需要它什么都能做, View 层其实不应该包含更多的逻辑,Velocity 的简单模板语法可以满足你所有对页面显示逻辑的需要,这通常已经足够了,这里不会发生象 jsp 那样因为一个无限循环语句而毁掉系统的情况,jsp 能做很多事情,Sun 在制定 Jsp 1.0 标准的时候,没有及时的限定程序员在 jsp 插入代码逻辑,使得早期的jsp 代码更象是 php 代码,它虽然强大,但是对显示层逻辑来说,并不必要,而且会使 MVC 三层的逻辑结构发生混淆。

我的网站: http://www.eiffelqiu.com
Email: eiffelqiu@163.com
希望和大家交流

出处:牧羊人手记
责任编辑:蓝色

上一页 Velocity 如何工作? 下一页

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
高手感悟:走向J2EE,漫长的道路
FLASH,你要我怎么跟你说!
免费的 JSP多文件上传的组件
JSP环境之服务器Resin安装
[JSP]用MVC架构注册登录的例子
作者文章
[翻译] Matz 关于技术的对话
使用 Velocity 模板引擎开发网站
热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
全兼容的纯CSS级联菜单要点浅析
CSS Sprites 图片整合技术
雅安,一场中式旅行
热烈祝贺"醒狮杯"圆满结束
菊花宝典大赏大奖教程《阳台》
交互设计师怎样和产品团队合作
Photoshop打造个性潮流音乐海报
简单解读面包屑
CSS盒模型
Apple与Microsoft网站可用性研究
栏目最新 栏目最新列表
safari 4 新特性
Photoshop制作精美高光流线字
IE下img多余5像素空白解决方法
XHTML1.0与HTML兼容指引16条
JavaScript优化细节
全兼容的纯CSS级联菜单要点浅析
CSS Sprites 图片整合技术
Photoshop打造个性潮流音乐海报
CSS盒模型
45度地图编辑器及游戏开发心得
>> 分页 首页 前页 后页 尾页 页次:4/41个记录/页 转到 页 共4个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文总共有 10 条评论,现在显示最新的 5 条。评分:- llllllllllllllllllll + 评分人数: 1 ,平均分: 1.00


218.104.54.231 Publish at 2004-7-13 16:00:37
确实不错,使项目分工明确
221.216.168.92 Publish at 2004-7-9 12:26:08
现在mvc模式的大量使用,使jsp分工明确,不可能被取代。SUN的jsp2.0规范的出台更明确了这一点。Model可以由Servlet来做。
218.94.87.11 Publish at 2004-6-14 12:26:26
比较好的 MVC 配合不是和 Struts, Velocity + Webwork , Tapestry + spring 都是很完美的组合, Struts 太偏向用 JSP 做它的 View 层了
61.169.70.133 Publish at 2004-6-11 23:43:25
好东西,如果能和struts配合使用,那么mvc就彻底实现了
211.97.118.180 Publish at 2004-3-26 11:03:43
好东西啊,,,有没有继续的!!!非常感谢!!!

查看全部评论

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
《Web标准设计》
《美工神话》
《Flash短片轻松学》
Illustrator CS3质感绘画表现技法
大师之路--Photoshop 完全解析
《用户体验要素》
HTML与CSS入门经典(第7版)
作品集 更多内容

胡椒下班 WESBROOK 毕业设计。 02年临摹的小图 地方门户网首页设计 光影练习01 毕业设计。 Station UI