类似于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指定输出编码
在Java文件中初始化Velocity模板引擎并设置Velocity上下文的一些变量然后把生成的模板输出到StringWriter:
//初始化模板引擎
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设置的目录下):
运行Java文件,使用Velocity生成的信息就打印出来了。
注:如果who为空时,${who}会原样输出,为了使之不输出,可以在$后加个!:$!{who}
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
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2012年10月10日 17:08:42 星期三
分享到:
相关推荐
Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎
本课程从velocity engine也就是velocity引擎开始, 先讲解velocity的基本使用以及基础语法 , 然后再讲解velocity 的进阶内容velocity Tools , 以及velocity作为web项目的视图改如何使用 , 每一部分都会有一个综合案例...
Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。...
NULL 博文链接:https://kingmxj.iteye.com/blog/371850
Velocity1.4java开发指南中文版 Velocity1.4模板使用指南中文版中文版
《Velocity java开发指南》中文版《Velocity java开发指南》中文版《Velocity java开发指南》中文版《Velocity java开发指南》中文版《Velocity java开发指南》中文版《Velocity java开发指南》中文版《Velocity ...
它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计...
Java的模板引擎Velocity初体验.pdf
Java Velocity模板引擎,简单字符串生成 https://blog.csdn.net/a497785609/article/details/130007990
velocity与freemaker、jstl并称为java web开发三大标签技术,一、定义变量二、遍历数组三、遍历HashTable四、判断是否为空五、数值、日期格式化六、国际化七、内建对象八、include、parse实现布局模块化
主要介绍了JAVA velocity模板引擎使用实例,需要的朋友可以参考下
JAVA的Velocity语法学习 内涵《Velocity_java开发指南》《Java的模板引擎Velocity初体验》 以及所必须的jar ,和大家一块学习,很好哦
Java Velocity 项目生成器使用 Jave Velocity 模板构建前端 Web 应用程序的生成器。特征CSS 自动前缀带有 LiveReload 的内置预览服务器自动编译 CoffeeScript & Sass 自动 lint 你的脚本自动将图像内联到 css 文件...
Velocity模板引擎技术在Java Web中的应用
Velocity模板(VM)语言介绍,简单的介绍,方便入门!
Velocity是一个基于java的模板引擎(template engine)。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员...
velociy模板引擎介绍,使用example,demo。开发教程。