`

Velocity详细说明

 
阅读更多

2012.01.07 大连 晴

 

这些天真是很忙,也没时间写文章了,放假了,可以细细的品味一些最近的收获和感想,还有很多。。。

慢慢的到了2012,这个注定不平凡的一年,大家都有自己的事业和发展,都有自己对这一年的期望,希望能梦想成真,发展顺利

 

废话就不多说了,马上开始我们的说明

 

Velocity 是jsp等的模版语言,真是强大,但都是写好vm文件,让后解析的,如果是要在jsp等中应用,需要其他的扩展tool,Velocity官网也提供下载

我这里也会说明,让我们慢慢道来

 

1.官网:

http://velocity.apache.org/engine/devel/index.html

 

2.下载Velocity

现在的版本是:1.7 

http://velocity.apache.org/download.cgi

里面包含了2个jar

 

1.velocity-1.7.jar

2.velocity-1.7-dep.jar

 

分别说明一下:

1.velocity-1.7.jar基本jar包,里面包含了开发需要的一切包

2.velocity-1.7-dep.jar包含了上面的包,但还包含了、其他的比如:oro.*,commons-lang.*,org.apache.log.*等

 

我用的是第一个,我不喜欢别人给封装好的东西

 

Velocity plugin for the Eclipse 

Velocity - http://veloeclipse.googlecode.com/svn/trunk/update/

 

下面我们可以写一个main函数调用vm了

jar:

avalon-logkit-2.1.jar

commons-collections-3.2.1.jar

commons-lang-2.4.jar

log4j-1.2.12.jar

velocity-1.7.jar

 

 

package com.chenhailong.velocity;

import java.io.IOException;
import java.io.StringWriter;
import java.util.Date;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

/**
 * 
 * @author chenhailong
 * pm 12:02:38
 * com.chenhailong.velocity
 */
public class HelloWorld {

    public static void main(String[] args) throws IOException {
        VelocityEngine ve = new VelocityEngine();
        ve.init();
        Template template = ve.getTemplate("hello.vm");
        VelocityContext context = new VelocityContext();
        context.put("name", "chenhailong");
        context.put("date", new Date().toString());
        StringWriter writer = new StringWriter();
        template.merge(context, writer);
        System.out.println(writer.toString());
        writer.close();
    }
}

 

 

 

Welcome $name to Javayou.com!
today is $date.

 

 

 

好了 这样我们就能运行了

其他例子

 

 

package com.chen.example;

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.log.Log4JLogChute;

public class Example {
    public static String LOGGER_NAME = "velexample";
    public static VelocityEngine ve = null;

    public Example(String templateFile) {
        try {
            ve = new VelocityEngine();
            //ve.init("bin/velocity.properties");
            ve.init();
            VelocityContext context = new VelocityContext();
            context.put("list", getNames());
            Template template = null;

            try {
                template = Velocity.getTemplate(templateFile);
            } catch (ResourceNotFoundException rnfe) {
                System.out.println("Example : error : cannot find template " + templateFile);
            } catch (ParseErrorException pee) {
                System.out.println("Example : Syntax error in template " + templateFile + ":" + pee);
            }
            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

            if (template != null)
                template.merge(context, writer);
            writer.flush();
            writer.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public ArrayList getNames() {
        ArrayList list = new ArrayList();

        list.add("ArrayList element 1");
        list.add("ArrayList element 2");
        list.add("ArrayList element 3");
        list.add("ArrayList element 4");

        return list;
    }

    public static void main(String[] args) {
        BasicConfigurator.configure();

        Logger log = Logger.getLogger(LOGGER_NAME);
        log.info("Hello from Log4jLoggerExample - ready to start velocity");
        Example t = new Example("example.vm");
        ve.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.Log4JLogChute");
        ve.setProperty(Log4JLogChute.RUNTIME_LOG_LOG4J_LOGGER, LOGGER_NAME);
        log.info("this should follow the initialization output from velocity");
    }
}
 

 

 

#set( $this = "Velocity")

$this is great!

#foreach( $name in $list )
    $name is great!
#end

#set( $condition = true)

#if ($condition)
    The condition is true!
#else
    The condition is false!
#end

 

 

 

runtime.log = velocity_example.log

 

 

基本的velocity的语法和常用的都在上面了,希望对大家有用

 

这里我介绍一下velocity tool 的应用

 

举一个小例子

 

 

<?xml version="1.0" ?>
<test>
	<chen a="1">
		chenhailong
	</chen>
</test>

 

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

dom4j-1.1.jar

oro-2.0.8.jar

velocity-tools-view-2.0.jar

velocity-1.6.2.jar

 

they are togetder 

tools.xml

 

<?xml version="1.0"?>
<tools>
	<data key="author">chenhailong</data>
	<data key="enter">chenh</data>

	<toolbox scope="application">
		<tool class="org.apache.velocity.tools.generic.XmlTool" key="test"
			file="test.xml" />
	</toolbox>
</tools>

 

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
	<servlet>
		<servlet-name>velocity</servlet-name>
		<servlet-class>org.apache.velocity.tools.view.VelocityLayoutServlet</servlet-class>
		<init-param>
			<param-name>org.apache.velocity.tools.deprecationSupportMode</param-name>
			<param-value>false</param-value>
		</init-param>
		<init-param>
			<param-name>org.apache.velocity.tools.cleanConfiguration</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>org.apache.velocity.tools.userCanOverwriteTools</param-name>
			<param-value>false</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>velocity</servlet-name>
		<url-pattern>*.vm</url-pattern>
	</servlet-mapping>
</web-app>
 

 

xml.vm

 

$test.chen.text
$test.find('@a')
$test.chen.a
$test.children()
$test.first+$test.last
$enter
$author 

 

 

其他工具基本都是一样的。。。

有什么问题发站内信

0
0
分享到:
评论

相关推荐

    velocity详细说明书,看了就可以上手的

    Velocity是一个基于java的模板引擎(template engine:模板引擎的作用就是取得数据并加以处理,最后显示出数据 )。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 简明易学...

    Velocity基本标记说明.doc

    以下是对这些标记的详细说明: 1. **$velocityCount**:这是Velocity的一个内置变量,用于表示默认的循环索引,从1开始。如果你希望索引从0开始,你需要在`Velocity.properties`文件中进行设置。这个配置文件位于`...

    velocity经典4pdf中文教程

    以下是对这些教程内容的详细说明: 1. **《Velocity模板使用指南中文版》**:这本书主要介绍如何在实际项目中使用Velocity模板语言(VTL)来构建动态网页。它涵盖了模板的基本语法,如变量引用、控制结构(if-else...

    Velocity_中文手册

    为了更好地使用Velocity,Velocity用户手册提供了详细的例子和说明。手册中包含了对VTL的详细介绍,比如变量的使用、控制结构的编写、指令的应用等,以帮助页面设计者和内容提供者快速熟悉和掌握Velocity的使用。...

    Myeclipse手动安装Velocity编辑器插件

    本篇文章将详细讲解如何手动在MyEclipse中安装Velocity编辑器插件,以提升对Velocity模板语言的开发体验。 Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态网页内容。在Web...

    eclipse velocity link方式安装插件

    6. **验证安装**:启动Eclipse后,检查`Window` -&gt; `Preferences`菜单,如果看到Velocity相关的设置或者在`Help` -&gt; `About Eclipse`的插件列表中看到Velocity,那么说明插件已经成功安装。 7. **阅读配置文档**:...

    velocity Java开发指南中文版

    - **在模板中用 #foreach 指令支持迭代对象**: 详细解释了如何使用 Velocity 的内置指令 `#foreach` 来遍历集合或数组等数据结构。 - **Context Chaining 上下文链**: 介绍了如何在一个上下文中嵌套另一个上下文,以...

    Myeclipse10手动安装Velocity插件.

    本教程将详细介绍如何在MyEclipse 10上手动安装Velocity插件,以增强其对Velocity模板语言的支持。 Velocity是由Apache软件基金会开发的一款开源的模板引擎,它为Java应用程序提供了简洁、高效的模板语言。在Web...

    spring velocity demo

    以下是关于Spring与Velocity集成以及相关知识点的详细说明: 1. **Spring Framework**:Spring是一个开源的Java应用框架,它提供了全面的基础设施服务,如依赖注入、AOP(面向切面编程)、数据访问、事务管理等,...

    velocity新手教程

    velocity新手教程,从简单到复杂,有详细的案例说明。

    Velocity用户手册中文版

    - “TheMudStore”例子用于说明 Velocity 在实际业务场景中的应用。 7. 需要的 JAR 包: - Velocity 用户需要准备特定的 JAR 包,以便在项目中使用 Velocity。 - Maven 用户可以通过 Maven 依赖的方式添加所需的...

    velocity文档

    《VTL语法参考指南中文版》.doc 提供了 Velocity 模板语言(VTL)的详细说明。VTL 是 Velocity 的核心,用于在模板中插入变量、控制结构和函数。其基本元素包括: 1. 变量引用:`$variable`,用于插入对象的属性值...

    maven+springMVC+mybatis+velocity+mysql+junit 代码生成器

    以下是这些技术及其相关知识点的详细说明: 1. Maven: Maven 是一个项目管理和综合工具,主要用于构建、管理和部署Java项目。它通过一个项目对象模型(Project Object Model,POM)来管理项目的依赖关系、构建...

    《Velocity java开发指南》中文版

    《Velocity Java开发指南》中文版是一本为Java开发者提供关于Velocity框架详细指导的文档。Velocity是Apache软件基金会的一个开源项目,它是一个简单、快速且强大的模板引擎,主要用于生成动态Web内容。Velocity通过...

    maven+spring mvc+hibernate+dubbo+velocity+mysql的demo源码

    以下是对这个项目中涉及的技术点的详细说明: 1. Maven: Maven是Java项目管理和构建工具,它通过POM(Project Object Model)文件管理项目的依赖、构建过程和其他配置。在本项目中,Maven负责下载并管理所有依赖...

    eclipse 3.5 Velocity 插件

    - `readme.txt`:这是一个标准的文本文件,通常包含有关插件的详细信息,如安装指南、使用说明、更新信息和许可协议等。 - `site.xml`:如上所述,这是插件更新站点的描述文件,用于Eclipse的“安装新软件”功能。 -...

    《Velocity Web应用开发指南中文版》.doc

    - **《Velocity Java开发指南中文版》**:详细介绍如何使用Velocity进行Java开发的相关知识。 - **《Velocity模板使用指南中文版》**:针对模板语言本身的使用技巧和最佳实践进行阐述。 - **《Velocity Web应用开发...

    Voice-Angle-velocity-speed-color.zip_velocity

    以下是对这些关键技术的详细说明: 1. **语音识别**: - **技术概述**:语音识别技术允许设备理解和响应人类的语言。它广泛应用于智能助手、智能家居、车载导航系统等。 - **工作原理**:通常包括预处理(如降噪...

Global site tag (gtag.js) - Google Analytics