`
Yaphis
  • 浏览: 578 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Velocity 入门

阅读更多

简介

      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;
    }

}

 

分享到:
评论
1 楼 xjq2008 2015-07-07  

相关推荐

    velocity入门使用教程

    #### Velocity入门 入门部分通过编写一个简单的“Hello, World”程序展示了Velocity的基本使用流程。首先,创建一个模板文件(.vm),在这个文件中使用VTL语法定义输出格式。然后,在Java代码中初始化Velocity引擎...

    Velocity入门教程(Spring集成Velocity)

    Velocity入门教程,语法,Velocity布局,Spring框架集成Velocity

    Velocity入门

    Velocity入门,velocity是基于Java的引擎模版

    Velocity入门例子

    在“Velocity入门例子”中,我们将会探讨以下几个关键知识点: 1. **Velocity模板语言**:Velocity 使用一种简单的文本标记语言,称为Velocity Template Language (VTL)。VTL 允许在模板中插入Java对象的属性值,...

    velocity入门使用

    **Velocity入门指南** Velocity是一款基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑分离,使得非程序员(如网页设计师)也能参与到网站的构建中。Velocity在Web开发中常用于生成动态内容,比如电子...

    Velocity入门Demo

    Velocity入门Demo,含源代码, 直接放到tomcat可以运行

    Velocity入门教程实例

    Velocity是一个基于Java的模板引擎,它主要的作用是在Web开发中分离Java代码与网页展示层,使得开发团队可以基于MVC架构协作开发。页面设计人员可以专注于页面的外观设计,而Java程序员则负责后端业务逻辑的编码。...

    velocity入门基础

    ### Velocity 入门基础知识 #### 一、Velocity 概述 **Velocity** 是一款基于 Java 的模板引擎,它被设计用来让开发者能够轻松地利用模板语言来引用 Java 代码所定义的对象。这种机制使得 Velocity 成为了一个强大...

    velocity入门例子

    【Velocity入门例子】是关于Apache Velocity的初学者教程资料,主要涵盖了如何使用Velocity这一模板引擎进行Web开发的基础知识。Velocity是一个开源的Java模板引擎,它允许开发者将HTML、XML或者其他格式的文档与...

    velocity入门简介

    ### Velocity入门知识点详解 #### 一、Velocity简介 Velocity 是一款基于 Java 的模板引擎,用于将数据模型与表现层分离,使得开发人员可以更高效地构建动态内容的 Web 应用程序。它允许用户通过简单的模板语法来...

    velocity入门篇

    **Velocity入门篇** Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与应用程序逻辑分离,使得开发者和网页设计师可以协同工作,提高开发效率。Velocity由Apache软件基金会开发并维护,是Apache ...

    Velocity入门小实例,纯java工程

    本实例旨在帮助初学者快速入门Velocity,理解其基本用法和核心概念。 1. **Velocity简介** Velocity是一个基于Java的模板引擎,它允许开发者在模板中使用特定的语法(Velocity Template Language, VTL)来插入动态...

    velocity 入门文档及应用源码,很适合做自动代码生成

    **Velocity简介** Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态Web内容。Velocity通过将内容展示与业务逻辑分离,帮助开发者专注于内容的编写,而无需关心HTML或者其他...

    velocity开发必备(中文指南+精通Velociy)

    这本书为初学者提供了详尽的Velocity入门教程,涵盖了以下关键知识点: 1. **基础语法**:介绍Velocity模板语言(VTL)的基本元素,如变量引用 `$variable`,常量 `#set`,条件判断 `#if`,循环 `#foreach`,以及...

    Velocity模板入门DEMO

    在“Velocity模板入门DEMO”中,我们通常会看到以下几个关键概念和知识点: 1. **模板文件**:Velocity模板文件通常以`.vm`为扩展名,其中包含静态文本和VTL指令。模板文件的主要任务是定义页面的布局和结构,通过...

    velocity实例

    velocity入门实例,java代码读取配置文件 可直接运行

    velocity快速入门

    ### Velocity快速入门详解 #### 一、Velocity简介与应用场景 **Velocity** 是一款基于 Java 的模板引擎,它允许用户通过简单的模板语言来访问由 Java 代码定义的对象。这种设计模式使得 Velocity 成为了一个非常...

Global site tag (gtag.js) - Google Analytics