个程序很简单,但是它能让你清楚的了解 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 三层的逻辑结构发生混淆。
分享到:
相关推荐
同时,这也是一种理解Velocity工作原理的好方式,为以后在更大规模的JAVAEE项目中使用Velocity打下基础。 总结来说,`JAVAEE Velocity例子工程` 提供了一个直接操作 Velocity 的实例,帮助开发者理解如何在JAVAEE...
在学习和实践中,通过编写类似的测试案例,可以加深对Velocity工作原理的理解。 总结来说,Velocity是一个强大的模板引擎,它简化了Web开发中的动态内容生成,使开发者能够更高效地组织和管理应用的视图层。通过...
2. **Velocity工作原理** 在Velocity中,开发者定义了模板(Template),这些模板包含HTML、CSS和JavaScript等静态内容,以及Velocity指令(如#set、#if、#foreach等)。Velocity引擎负责解析这些模板,执行嵌入的...
**Velocity工作原理** Velocity通过读取模板文件,然后结合用户提供的上下文数据,生成最终的输出。这个过程主要包括以下几个步骤: 1. **模板解析**:Velocity将模板文件解析成一个内部的抽象语法树(AST),这个...
Velocity工作原理 Velocity在处理模板时,会将模板中的指令(如`${}`和`#if`等)替换为Java代码,并在运行时执行。这使得开发者可以将变量和逻辑嵌入到HTML文档中,同时保持模板的清晰和可读性。 ### 3. 安装与...
Velocity 工作原理 - **模板解析**:Velocity 首先会解析模板文件,将模板中的指令(如`#if`, `#foreach`, `#set`等)识别出来,形成抽象语法树(AST)。 - **数据绑定**:在运行时,通过`VelocityContext`将...
**Velocity工作原理** Velocity的工作核心在于其`Template`(模板)和`Context`(上下文)。模板是静态的HTML或XML文件,其中包含一些Velocity指令,如`#set`、`#if`、`#foreach`等。这些指令用于在运行时动态插入...
对于想要深入理解Velocity工作原理或者想要对其进行定制的开发者来说,查看源码是一种很好的学习方式。通过研究源码,开发者可以了解到Velocity如何解析模板、如何执行指令,以及如何与后端数据源交互等核心概念。 ...
**Velocity工作原理** Velocity的工作流程主要包括以下几个步骤: 1. **模板加载**:Velocity引擎会加载指定路径下的模板文件,这些文件通常包含HTML或XML等静态内容以及VTL指令。 2. **模板解析**:引擎对加载的...
### Velocity工作原理 当VelocityEngine接收到一个请求时,它首先查找相应的模板,并将其解析成内部的AST(抽象语法树)表示。接着,它将VelocityContext中的数据模型与模板中的占位符相匹配,执行必要的计算和转换...
**Velocity 的工作原理** Velocity 通过解析模板语言(Velocity Template Language, VTL)来生成最终的输出。在模板中,开发者可以插入变量和控制结构,这些变量会由 Velocity 引擎替换为实际的值。VTL 的语法简洁...
理解 Velocity的内部工作原理,例如模板加载机制和指令处理流程,可以帮助我们更好地优化性能。 总之,Velocity是一个强大的模板引擎,它简化了Web应用的开发流程,提高了开发效率。通过深入学习和实践,我们可以...
深入研究Velocity的源码有助于理解其工作原理,例如如何解析模板、如何执行指令、如何处理上下文对象等。这不仅可以帮助优化模板设计,还能为自定义扩展提供基础。 ### 学习资源 - 博文链接:...
通过这些示例,用户可以直观地了解Velocity的工作原理,学习如何有效地使用Velocity来生成动态内容。 ### 扩展与优化 - **Velocity Tools**: 这是一个扩展库,提供了许多有用的工具,如视图辅助类,可以帮助简化...
**Velocity的工作原理** Velocity的核心理念是“分离视图”,它通过一个简单的模板语言(Velocity Template Language, VTL)来实现这一目标。在VTL中,开发者可以插入变量和控制结构,这些内容在渲染时会被Java对象...
对于标签“源码”和“工具”,我们可以进一步研究这两个模板引擎的源代码,理解其工作原理,并掌握如何在项目中有效利用它们。提供的文件列表似乎包含了一些日志文件、项目配置文件和源代码库,这可能是项目开发或...
通过这个项目,你可以深入理解如何在Struts 1.x环境中集成Velocity,利用Velocity的模板语言来生成动态内容,同时还能掌握Struts MVC架构的基本工作原理。这不仅有助于提高代码的可读性和可维护性,还能提升Web应用...
Velocity的工作原理基于MVC(Model-View-Controller)模式,其中模板(View)负责呈现数据,而控制器和模型负责处理业务逻辑和数据处理。Velocity模板语言(VTL)是Velocity的核心,它允许开发者在模板文件中插入...
通过阅读这份中文手册,你可以深入了解Velocity的工作原理,掌握其使用技巧,从而在实际开发中更好地利用Velocity来生成动态内容。对于初学者来说,这是一个非常有价值的资源,能够帮助快速上手并熟练运用Apache ...