`
sxpyrgz
  • 浏览: 72337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VELOCITY三种属性加载方式

    博客分类:
  • java
 
阅读更多

一、velocity默认的加载方式(文件加载方式)

package com.velocity.test;

import java.io.StringWriter;
import java.util.Properties;

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

/**
 * 从文件中加载模板文件,即velocity默认的模板文件加载方式
 * 
@author welcome
 *
 
*/
public class LoaderFromFile {
    
    
public static void main(String[] args) throws Exception{
        
//初始化参数
        Properties properties=new Properties();
        
//设置velocity资源加载方式为file
        properties.setProperty("resource.loader""file");
        
//设置velocity资源加载方式为file时的处理类
        properties.setProperty("file.resource.loader.class""org.apache.velocity.runtime.resource.loader.FileResourceLoader");
        
//实例化一个VelocityEngine对象
        VelocityEngine velocityEngine=new VelocityEngine(properties);
        
        
//实例化一个VelocityContext
        VelocityContext context=new VelocityContext();
        
//向VelocityContext中放入键值
        context.put("username""张三");
        context.put(
"password""123456789");
        context.put(
"age""20");
        context.put(
"address""陕西西安"); 
        context.put(
"blog""http://blogjava.net/sxyx2008");
        
//实例化一个StringWriter
        StringWriter writer=new StringWriter();
        
//从vm目录下加载hello.vm模板,在eclipse工程中该vm目录与src目录平级
        velocityEngine.mergeTemplate("vm/hello.vm""gbk", context, writer);
        System.out.println(writer.toString());
        
    }
}

二、从类路径加载模板文件

package com.velocity.test;

import java.io.StringWriter;
import java.util.Properties;

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

/**
 * 从class(类路径)中加载模板文件
 * 
@author welcome
 *
 
*/
public class LoaderFromClass {
    
    
public static void main(String[] args) throws Exception{
        
//初始化参数
        Properties properties=new Properties();
        
//设置velocity资源加载方式为class
        properties.setProperty("resource.loader""class");
        
//设置velocity资源加载方式为file时的处理类
        properties.setProperty("class.resource.loader.class""org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        
//实例化一个VelocityEngine对象
        VelocityEngine velocityEngine=new VelocityEngine(properties);
        
        
//实例化一个VelocityContext
        VelocityContext context=new VelocityContext();
        
//向VelocityContext中放入键值
        context.put("username""张三");
        context.put(
"password""123456789");
        context.put(
"age""20");
        context.put(
"address""陕西西安"); 
        context.put(
"blog""http://blogjava.net/sxyx2008");
        
//实例化一个StringWriter
        StringWriter writer=new StringWriter();
        
        
//从src目录下加载hello.vm模板
        
//假若在com.velocity.test包下有一个hello.vm文件,那么加载路径为com/velocity/test/hello.vm
        velocityEngine.mergeTemplate("com/velocity/test/hello.vm""gbk", context, writer);
        
        
//velocityEngine.mergeTemplate("hello.vm", "gbk", context, writer);
        System.out.println(writer.toString());
    }
}

三、从jar文件中加载模板文件

package com.velocity.test;

import java.io.StringWriter;
import java.util.Properties;

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

/**
 * 从jar文件中加载模板文件
 * 
@author welcome
 *
 
*/
public class LoaderFromJar {
    
    
public static void main(String[] args) throws Exception{
        
//初始化参数
        Properties properties=new Properties();
        
//设置velocity资源加载方式为jar
        properties.setProperty("resource.loader""jar");
        
//设置velocity资源加载方式为file时的处理类
        properties.setProperty("jar.resource.loader.class""org.apache.velocity.runtime.resource.loader.JarResourceLoader");
        
//设置jar包所在的位置
        properties.setProperty("jar.resource.loader.path""jar:file:WebRoot/WEB-INF/lib/vm.jar");
        
//实例化一个VelocityEngine对象
        VelocityEngine velocityEngine=new VelocityEngine(properties);
        
        
//实例化一个VelocityContext
        VelocityContext context=new VelocityContext();
        
//向VelocityContext中放入键值
        context.put("username""张三");
        context.put(
"password""123456789");
        context.put(
"age""20");
        context.put(
"address""陕西西安"); 
        context.put(
"blog""http://blogjava.net/sxyx2008");
        
//实例化一个StringWriter
        StringWriter writer=new StringWriter();
        
//从/WebRoot/WEB-INF/lib/vm.jar中加载hello.vm模板  vm.jar的目录结构为vm/hello.vm
        velocityEngine.mergeTemplate("vm/hello.vm""gbk", context, writer);
        System.out.println(writer.toString());
    }
}


http://www.blogjava.net/sxyx2008/archive/2010/11/11/337799.html

分享到:
评论

相关推荐

    Velocity 和 FreeMarker区别

    - **FreeMarker**支持更灵活的数据绑定方式,能够轻松地访问和操作Java对象的属性。 - **Velocity**的数据绑定功能虽然不如FreeMarker强大,但在简单应用中已经足够。 8. **模板继承与包含**: - **FreeMarker**...

    velocity入门使用教程

    Velocity模板语言(Velocity Template Language,简称VTL)是Velocity的核心,它提供了一种简单但功能强大的模板语言,允许用户通过模板文件引用Java对象属性,结合数据模型动态生成内容。 在本教程中,我们将介绍...

    velocity示例

    2. **设置Velocity属性**:通过调用`Velocity.SetProperty`方法设置了Velocity的几个关键属性,包括资源加载器、模板路径以及输入输出编码。 3. **初始化Velocity**:通过调用`Velocity.Init()`方法初始化Velocity...

    velocity中文

    Velocity通过简单的语法使得模板语言与Java代码隔离,提供了一种高效、灵活且易于维护的Web应用开发方式。 ### 1. Velocity简介 Velocity是由Apache软件基金会开发的一个开源项目,它最初设计用于生成静态网站内容...

    velocity 电子书

    - 配置Velocity引擎涉及到设置资源加载器、缓存策略、错误处理以及自定义指令等。 - 通过调整配置,可以优化Velocity的性能和适应不同项目需求。 5. **Velocity与MVC模式** - 在Model-View-Controller架构中,...

    Apache Velocity - Developer's Guide

    Apache Velocity 是一个基于 Java 的模板引擎,它提供了一种简单而强大的方法来创建和渲染格式化数据的文档。Velocity 的设计目的是使得开发者能够轻松地将数据模型与表现层进行分离,从而更灵活地管理和更新应用...

    Velocity

    通过分析这个例子,我们可以更好地理解Velocity的工作方式及其在实际项目中的应用。 总结起来,Velocity 是一个强大而灵活的模板引擎,它简化了动态内容生成的过程,使得开发者可以专注于业务逻辑,而设计师则可以...

    Velocity初始化过程解析

    在Java Web开发中,Apache Velocity是一个常用的模板引擎,它允许开发者将内容和呈现逻辑分离,提供了一种高效的动态内容生成方式。本文将深入解析Velocity的初始化过程,帮助开发者更好地理解和使用这一工具。 ...

    Velocity介绍.ppt

    总的来说,Velocity 提供了一种高效、灵活的方式来处理模板和动态内容生成,简化了 Web 开发和其他文本生成任务,使得非程序员也能方便地参与到内容设计中。通过深入了解 VTL 和 Velocity 的工作原理,开发者可以更...

    velocity中文文档 教程

    2. **加载模板**:使用`VelocityReader`或`ResourceLoader`加载模板文件。 3. **合并上下文和模板**:通过`VelocityTemplate.merge(context, writer)`方法,将上下文中的数据与模板结合,生成最终的输出。 4. **输出...

    Velocity教程

    总结,Velocity提供了一种强大的方式来实现Java应用中的视图层与业务逻辑分离,通过简洁的模板语言和上下文管理,使得开发更高效。掌握Velocity的使用,可以提升你的Web开发效率,让你的应用具备更好的可维护性和可...

    velocity例子

    - 配置Velocity:通过创建`velocity.properties`文件来设置Velocity的属性,例如模板目录、缓存策略等。 3. **Java与Velocity的集成** - 创建Velocity模板:在项目的资源目录下创建`.vm`文件,编写包含VTL指令的...

    Mastering.Apache.Velocity

    Velocity 模板语言 (VTL) 是 Velocity 提供的一种用于定义模板的脚本语言。它具有以下特点: 1. **变量赋值**:使用 `$variable` 来引用变量,`$!variable` 来避免空指针异常。 2. **控制结构**:提供 `#if`, `#...

    Velocity Template的另类用法:生成XML

    然而,它的应用并不仅限于此,正如标题所示,“Velocity Template的另类用法:生成XML”,我们可以利用其强大的文本处理能力来生成XML文档,这种方式在数据转换、报告生成或配置文件制作等方面非常实用。 首先,让...

    velocity Java开发指南中文版

    - **Exceptions 异常**: 讨论了 Velocity 可能抛出的异常类型及其处理方式。 - **其它细节**: 提供了一些额外的信息,比如性能优化技巧等。 #### 七、Application Attributes (应用程序属性) - **Application ...

    Velocity学习Web项目

    同时,需要在项目的类路径下放置`velocity.properties`文件,用于配置Velocity的行为,例如模板加载路径和缓存策略。 接下来,创建一个 Velocity模板文件,比如`velocityDemo.vm`。这个文件会包含HTML结构,其中...

    velocity基础教程

    VTL是Velocity使用的模板语言,它提供了一种简洁的方式来将动态内容插入到Web页面中。VTL的主要元素包括: - **注释**:VTL支持单行注释(以`##`开始)和多行注释(在`#*`和`*#`之间)。 - **引用(References)**:...

    velocity实现静态页面分页

    三、Velocity实现分页步骤 1. 数据获取: 首先,你需要从数据库或其他数据源获取所有数据,并根据需求计算总页数。例如,如果每页显示10条记录,且总记录数为250,则总页数为25。 2. 创建分页模型: 在Java后端...

    Velocity语法以及整合struts2总结

    **三、Velocity基本语法** 1. **引用变量**:在Velocity模板中,可以使用`${variable}`来引用Java对象的属性,如`${user.name}`。 2. **控制结构**:Velocity支持条件语句(`#if`、`#elseif`、`#else`)和循环(`#...

Global site tag (gtag.js) - Google Analytics