简介
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发
说明
Velocity 官方主页:http://velocity.apache.org/
最新版本下载地址:http://velocity.apache.org/download.cgi#engine
JAVA引擎模板技术应该算是比较老的技术了,最后更新的版本是1.7 Released,以下实例均使用该最新版本
实例
App
Velocity可以应用在普通java程序中,下面简单介绍其使用
依赖包
需导入以下jar包
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-digester-1.8.jar
commons-lang-2.2.jar
commons-logging-1.1.jar
velocity-1.7.jar
Demo程序
package com.velocity.demo.app; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.OutputStreamWriter; import java.util.Properties; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.Velocity; /** * Velocity App Demo * * @author Yaphis 2014年6月17日 上午9:58:17 */ public class VelocityAppDemo { public static void main(String[] args) { BufferedWriter writer = null;// 输出流 try { String classPath = VelocityAppDemo.class.getResource("/").getPath(); String velocityProp = classPath + "appVelocity.properties"; Properties prop = new Properties(); prop.load(new FileReader(new File(velocityProp))); Velocity.init(prop);// 也可以使用其他初始化构造方法 VelocityContext context = new VelocityContext(); String str[] = new String[] { "A1", "A2", "A3" }; context.put("list", str); Template template = Velocity.getTemplate("hello.vm");// 该文件夹必须在工程根目录下 writer = new BufferedWriter(new OutputStreamWriter(System.out)); if (null != template) { template.merge(context, writer); } writer.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != writer) { writer.close(); } } catch (Exception e2) { e2.printStackTrace(); } } } }
Web
Velocity可以应用在Web程序中,下面简单介绍其使用
依赖包
除上面APP程序导入的jar包外,还需导入velocity-tools-view-2.0.jar
Demo程序
只贴出核心代码,完整工程示例见附件VelocityDemo.zip
package com.velocity.demo.web; import java.util.Properties; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.velocity.Template; import org.apache.velocity.app.Velocity; import org.apache.velocity.context.Context; import org.apache.velocity.tools.view.VelocityViewServlet; /** * Velocity Servlet Demo 继承VelocityViewServlet重写handleRequest快速开发 具体实现可以去读源码 * * @author Yaphis 2014年6月17日 上午10:58:25 */ public class VelocityServletDemo extends VelocityViewServlet { private static final long serialVersionUID = 975360877834044842L; @Override public void init() throws ServletException { String webApppath = this.getServletContext().getRealPath("/"); Properties prop = new Properties(); prop.setProperty("file.resource.loader.path", webApppath + "webTemplate");// 设置template文件的目录 Velocity.init(prop); } @Override protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) { try { String[] str = new String[] { "T1,T2,T3" }; ctx.put("list", str); Template template = Velocity.getTemplate("hello.vm"); return template; } catch (Exception e) { e.printStackTrace(); } return null; } }
相关推荐
#### Velocity入门 入门部分通过编写一个简单的“Hello, World”程序展示了Velocity的基本使用流程。首先,创建一个模板文件(.vm),在这个文件中使用VTL语法定义输出格式。然后,在Java代码中初始化Velocity引擎...
Velocity入门教程,语法,Velocity布局,Spring框架集成Velocity
Velocity入门,velocity是基于Java的引擎模版
在“Velocity入门例子”中,我们将会探讨以下几个关键知识点: 1. **Velocity模板语言**:Velocity 使用一种简单的文本标记语言,称为Velocity Template Language (VTL)。VTL 允许在模板中插入Java对象的属性值,...
**Velocity入门指南** Velocity是一款基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑分离,使得非程序员(如网页设计师)也能参与到网站的构建中。Velocity在Web开发中常用于生成动态内容,比如电子...
Velocity入门Demo,含源代码, 直接放到tomcat可以运行
Velocity是一个基于Java的模板引擎,它主要的作用是在Web开发中分离Java代码与网页展示层,使得开发团队可以基于MVC架构协作开发。页面设计人员可以专注于页面的外观设计,而Java程序员则负责后端业务逻辑的编码。...
### Velocity 入门基础知识 #### 一、Velocity 概述 **Velocity** 是一款基于 Java 的模板引擎,它被设计用来让开发者能够轻松地利用模板语言来引用 Java 代码所定义的对象。这种机制使得 Velocity 成为了一个强大...
【Velocity入门例子】是关于Apache Velocity的初学者教程资料,主要涵盖了如何使用Velocity这一模板引擎进行Web开发的基础知识。Velocity是一个开源的Java模板引擎,它允许开发者将HTML、XML或者其他格式的文档与...
### Velocity入门知识点详解 #### 一、Velocity简介 Velocity 是一款基于 Java 的模板引擎,用于将数据模型与表现层分离,使得开发人员可以更高效地构建动态内容的 Web 应用程序。它允许用户通过简单的模板语法来...
**Velocity入门篇** Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与应用程序逻辑分离,使得开发者和网页设计师可以协同工作,提高开发效率。Velocity由Apache软件基金会开发并维护,是Apache ...
本实例旨在帮助初学者快速入门Velocity,理解其基本用法和核心概念。 1. **Velocity简介** Velocity是一个基于Java的模板引擎,它允许开发者在模板中使用特定的语法(Velocity Template Language, VTL)来插入动态...
**Velocity简介** Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态Web内容。Velocity通过将内容展示与业务逻辑分离,帮助开发者专注于内容的编写,而无需关心HTML或者其他...
这本书为初学者提供了详尽的Velocity入门教程,涵盖了以下关键知识点: 1. **基础语法**:介绍Velocity模板语言(VTL)的基本元素,如变量引用 `$variable`,常量 `#set`,条件判断 `#if`,循环 `#foreach`,以及...
在“Velocity模板入门DEMO”中,我们通常会看到以下几个关键概念和知识点: 1. **模板文件**:Velocity模板文件通常以`.vm`为扩展名,其中包含静态文本和VTL指令。模板文件的主要任务是定义页面的布局和结构,通过...
velocity入门实例,java代码读取配置文件 可直接运行
### Velocity快速入门详解 #### 一、Velocity简介与应用场景 **Velocity** 是一款基于 Java 的模板引擎,它允许用户通过简单的模板语言来访问由 Java 代码定义的对象。这种设计模式使得 Velocity 成为了一个非常...