Velocity,java的模板引擎,Velocity模板语言,Velocity使用方法【蕃薯耀】

类似于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设置的目录下):
${who}
${content}

运行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所需的jar包 开发velocity所需的jar包 立即下载

相关推荐

velocity jar包

velocity 三个核心jar文件,给大家,希望有用

java velocity js_JavaScript 模板引擎 Velocity.js_js

Velocity.js是Velocity模板语法的JavaScript实现。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含基本数据类型、变量赋值和函数等功能。Velocity语法具有很高的容错能力,类似于html结构的解析,同时语法规则复杂。velocity.js兼容ie6+,chrome等其他浏览器。开源协议:The MIT License代码托管地址:https://g...

weixin_29817227的博客 503

velocity-1.7-dep.jar

velocity-1.7-dep.jar ============================================================

Velocity入门

Velocity是一个基于Java模板引擎。它允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。当Velocity用于Web开发时,Web设计人员可以与Java程序员并行工作,以根据模型 - 视图 - 控制器(MVC)模型开发Web站点,这意味着网页设计人员可以专注于创建一个看起来很好的站点,程序员可以专注于编写一流的代码。VelocityJava代码与网页分开,使网站在其生命周期内更加可维护,并为Java Server Pages(JSP)或PHP提供了可行的替代方案。

Lilyの博客 ٩(❛ัᴗ❛ั) 7万+

Velocity详细说明

2012.01.07 大连 晴   这些天真是很忙,也没时间写文章了,放假了,可以细细的品味一些最近的收获和感想,还有很多。。。 慢慢的到了2012,这个注定不平凡的一年,大家都有自己的事业和发展,都有自己对这一年的期望,希望能梦想成真,发展顺利   废话就不多说了,马上开始我们的说明   Velocity 是jsp等的模版语言,真是强大,但都是写好vm文件,让后解析的,如果是要在j...

chenhailong118的专栏 424

Velocity模板引擎入门

类似于PHP中的Smarty,Velocity是一个基于Java模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。从而实现界面和Java代码的分离,使得界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点。另外,Velocity的能力远不止web站点开发这个领域,例如,它可以...

weixin_34315189的博客 125

Velocity学习笔记第一天

1.   什么是Velocity Velocity是一个基于java模板引擎(templateengine)。它允许使用模板语言(templage language)来引用由java代码定义的对象。比EL表达式更为强大,可以引用对象的方法 2.   使用Velocity需要的jar 下载路径:http://velocity.apache.org/download.cgi velocity

zjq78577117的博客 1148

java velocity入门_(java入门)Velocity最简单例程

一,前言在编程中总会用到 “文本模板”+“数据” 来生成新的文本的情况。最常用的就是 WebUI 在 HTML 文本中嵌入数据。除了 Web 应用中,还有些实用的方面,比如,自动返信。Apache的Velocity能帮助我们解决这些问题。二,环境与相关资料三,例程#Jar列表velocity-1.7.jarvelocity-1.7-dep.jarpackage net.dncsoft.sample...

weixin_33224795的博客 223

velocity1.7快速上手小例子

1、新建一个java工程,将velocity的jar包添加进编译路径,包括velocity-1.7.jar和lib中的所有jar包,这里给出下载链接:http://velocity.apache.org/download.cgi。 2、给出模板文件:example.vm. <?xml version="1.0" encoding="UTF-8"?> <list> #...

甲骨文进行曲 237

velocity的所有jar包

velocity所有的JAR,一共四个jar文件.

Velocity所需jar包

velocity所需jar下载 commons-beanutils.jar commons-collections-3.1.jar commons-digester-1.8.jar velocity-1.7.jar velocity-1.7-dep.jar velocity-tools-2.0.jar

Velocity

一、基本语法1."#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等。 如:#if($info.imgs) <img src="$info.imgs" border=0> #else <img src="noPhoto.jpg"> #end2."$"用来标识一个对象(可理解为变量)。如:$

wei542657623的博客 419

Velocity-1.7.jar的包目录结构

Velocity-1.7.jar的包目录结构

杨春建的博客 1791

Velocity Quick Start [5] - 在模板使用对象属性、方法

源文件 FiveExample.javapackage nc.jonathan.velocity;import java.io.BufferedWriter;import java.io.FileWriter;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util

Enjoy Life with Sun 7763
上一篇: jquery获取焦点后光标在字符串后
下一篇: Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If
iteye_17476
博客等级 码龄8年 14粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值