类似于PHP中的Smarty,Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。从而实现界面和Java代码的分离,使得界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点。
另外,Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
编写Velocity版的Hello World
获取Velocity相关JAR文件:
从http://velocity.apache.org/网站上下载最新的Velocity,这里我们下载了velocity-1.7.zip
相关Jar包添加到项目中:
解压velocity-1.7.zip,发下其根目录下有两个JAR文件:
velocity-1.7.jar velocity-1.7-dep.jar
其中velocity-1.7-dep.jar包含了:
velocity-1.7.jar commons-collections-3.2.1.jar commons-lang-2.4.jar oro-2.0.8.jar(这些JAR文件位于解压目录的lib目录下)
在JAR包不冲突的情况下可以直接使用velocity-1.7-dep.jar
载类路径下添加velocity.properties文件:
该文件一般包含如下配置:
runtime.log = F:\project\MusicalInstrumentsStore\velocity_example.log
file.resource.loader.path = F:\project\MusicalInstrumentsStore\vm
input.encoding = UTF-8
output.encoding = UTF-8
runtime.log指定日志文件存放位置
file.resource.loader.path指定模板的加载位置
input.encoding指定输入编码
output.encoding指定输出编码
模版的使用一共以下步骤:
1.初始化模版引擎
2.构建velocity上下文
3.变量值添加到上下文中
4.选择模版
5.合并模版和数据导出到输出流
//初始化模板引擎
Velocity.init("src/velocity.properties");
//获取VelocityContext
VelocityContext context = new VelocityContext();
//为Context设置变量
context.put("title", "HelloWorld");
context.put("author", "arthinking");
//获取模板文件
Template template = Velocity.getTemplate("helloworld.vm");
StringWriter sw = new StringWriter();
//使用模板文件的merge函数合并模板和context提供的变量,输出到StringWriter中
template.merge(context, sw);
sw.flush();
System.out.println(sw.toString());
编写helloworld.vm模板文件(保存在file.resource.loader.path设置的目录下):
${title}
${author}
Velocity模版的基本语法:
访问对象属性
和使用EL表达式差不多,直接使用”.”导航。
如访问object对象的id属性:${object.id }
遍历List集合
#foreach($element in $list)
#element
#end
使用判断语句
#if($condition)
true
#else
false
#end
获取迭代索引值
默认使用变量名:$velocityCount
也可以自定义此变量名,在velocity.properties中设置
directive.foreach.counter.name=index
设置索引起始位置为0
directive.foreach.counter.initial.value=0
遍历Map变量
#foreach($key in $map.keySet())
$key : $map.get($key)
#end
在模板中进行赋值
#set(#a=”Hello World!”)
$a
#set($array1=[1..10])
#foreach($entry in $array1)
#entry
#end
使用Velocity模板引擎生成文件
//初始化模板引擎
Velocity.init("src/velocity.properties");
//获取VelocityContext
VelocityContext context = new VelocityContext();
//为Context设置变量
context.put("content", "HelloWorld");
context.put("who", "arthinking");
//获取模板文件
Template template = Velocity.getTemplate("helloworld.vm");
//创建输出文件
File output = new File("D:/Velocity/1.html");
if(!output.getParentFile().exists())
output.getParentFile().mkdir();
//创建输出流
FileOutputStream outputStream = new FileOutputStream(output);
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
template.merge(context, bufferedWriter);
bufferedWriter.flush();
outputStream.close();
bufferedWriter.close();
转自:http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax-and-basic-use.html
分享到:
相关推荐
Velocity模板语言(Velocity Template Language,简称VTL)是Apache软件基金会的Velocity项目中的一部分,它是一种用于生成动态网页内容的模板引擎。Velocity以其简洁、易读的语法,为Java开发者提供了一种高效的...
教程内容包含了解Velocity模板引擎的基础知识、学习VTL语法、设置和使用velocity.properties配置文件以及如何在Servlet和Spring MVC环境中集成Velocity。 ### Velocity模板引擎的基本使用方法 Velocity可以用来...
本课程从velocity engine也就是velocity引擎开始, 先讲解velocity的基本使用以及基础语法 , 然后再讲解velocity 的进阶内容velocity Tools , 以及velocity作为web项目的视图改如何使用 , 每一部分都会有一个综合案例...
Beetl的特色之一是其FastRuntimeEngine,这使得它在处理速度上远超Freemarker、Velocity以及JSP等其他模板引擎。Beetl对IO操作进行了优化,降低了内存消耗,同时提供了丰富的上下文(Context)和JavaAPI,方便开发者...
Velocity是一个基于Java的模板引擎,它主要的作用是在Web开发中...总之,Velocity模板引擎因其简单和功能强大的特点,在Java Web开发中被广泛地采用,它支持开发者进行高效的模板设计,提高了Web应用的开发和维护效率。
在IT领域,Json和NVelocity模板引擎是两个重要的技术组件,尤其在C#开发中有着广泛的应用。Json是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。NVelocity则是一个开源的Java模板引擎,...
Java Velocity 项目生成器使用 Jave Velocity 模板构建前端 Web 应用程序的生成器。特征CSS 自动前缀带有 LiveReload 的内置预览服务器自动编译 CoffeeScript & Sass 自动 lint 你的脚本自动将图像内联到 css 文件...
速度 节点速度模板引擎。 Node Edition速度模板引擎。0.特点完全实现了速度语法。 查看模板依赖性。 从模板中提取数据结构。 生成中间模板以转储上下文。1.分期付款$ npm install velocity -g2.快速入门一些示例已为...
Velocity是一个基于Java的模板引擎,它允许开发者在模板中使用特定的语法(Velocity Template Language, VTL)来插入动态内容。当模板与数据源结合时,Velocity会生成最终的静态输出,如HTML页面或XML文档。这遵循...
这个主题探讨了如何结合Apache Ant构建工具和Velocity模板引擎来实现自动化代码生成。Apache Ant是一个Java项目管理工具,可以用于编译、打包和部署应用程序。将Velocity与Ant结合,可以自定义模板生成符合特定需求...
Velocity 是一个基于 Java 的模板引擎,它是 Apache 软件基金会的顶级项目之一。它被广泛用于 Web 开发中,尤其是在 MVC(Model-View-Controller)架构中,作为视图层的技术,帮助开发者将静态页面与动态数据分离。...
Velocity模板引擎的强大之处在于其简洁的语法和灵活的功能,使得开发者能够快速生成复杂且动态的文档。通过掌握上述基础语法,开发人员能够在Web开发、报告生成等多种场景下高效利用Velocity,实现数据驱动的文本...
1. **Velocity模板语言**:Velocity 使用一种简单的文本标记语言,称为Velocity Template Language (VTL)。VTL 允许在模板中插入Java对象的属性值,例如 `${variable}`。开发者可以在后端设置这些变量,然后在前端...
**Velocity** 是一款基于 Java 的模板引擎,它允许用户通过简单的模板语言来访问由 Java 代码定义的对象。这种设计模式使得 Velocity 成为了一个非常强大的工具,尤其适用于 Web 开发场景。 - **基本原理**:在 ...
Velocity是一个开源的Java模板...通过"velocity-web.zip"中的"velocity-web"项目,你可以动手实践以上知识点,了解并掌握Velocity模板引擎的使用。这将有助于你深入理解Java Web开发中的视图层技术,提升你的开发技能。
【Velocity入门例子】是关于Apache Velocity的初学者教程资料,主要涵盖了如何使用Velocity这一模板引擎进行Web开发的基础知识。Velocity是一个开源的Java模板引擎,它允许开发者将HTML、XML或者其他格式的文档与...
1. **模板(Template)**:Velocity模板是HTML文件,其中包含了Velocity指令和变量。这些元素被 Velocity解释器替换为实际值。 2. **上下文(Context)**:上下文是存储数据的地方,它可以包含任何类型的Java对象。...