- 浏览: 72445 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
comsci:
大家加油,把中国自定义工作流的技术水平推行新的高峰。。。。。。 ...
JAVASCRIPT 画工作流 -
dqqmq:
我也刚做了个网页式的画工作流页面,因要配置流程节点界面等原因, ...
JAVASCRIPT 画工作流 -
sxpyrgz:
braveone 写道servlet也是使用单例模式,那么当多 ...
为什么要使用单例 -
braveone:
servlet也是使用单例模式,那么当多个用户请求时,是不是要 ...
为什么要使用单例 -
大海lb:
sxpyrgz 写道songbin0201 写道如果是我,一定 ...
如果你是学生,你还没毕业,一定要好好的学一下大学课程,必须的
一、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());
}
}
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());
}
}
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());
}
}
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
发表评论
-
SQL优化,间隙锁
2020-08-20 16:58 0间隙锁1: https://blog.csdn.net/wei ... -
爬数据
2020-05-30 18:43 0package com.jframe.market.util; ... -
java print
2018-11-07 09:20 0使用WORD编辑PDF,再使用 pdf adobe acrob ... -
安全知识
2018-03-27 08:45 0互联网安全需要注意问题: 1、CSRF安全 2、XSSF问题 ... -
Atomic LOCK synchronized性能测试
2016-06-26 19:36 591今天测试了多线程并发计数的性能:结果测试性能为: 计 ... -
JHOTDRAW一个相当不错的JAVA绘制软件
2011-12-15 18:45 2275JHOTDRAW 是运用SWING与AWT开发的一款JAVA绘 ... -
如果你是学生,你还没毕业,一定要好好的学一下大学课程,必须的
2011-11-27 17:38 18432007年从学校步入 ... -
贴个SWING画的CUBE
2011-10-22 11:47 1063看了大牛儿们的SWING博客,画一个SWING界面玩儿玩儿,附 ... -
JHOTDRAW
2011-10-13 18:16 1198Jhotdraw是一个很不错 ... -
从原理上理解服务器
2011-08-29 22:47 0服务器,顾名思义:就是提供服务的机器。例:邮件服务器,文件服务 ... -
对图形平台的一些概念的东西
2011-08-29 21:30 0开发与图形相关的系统,已经两年了,现从宏观与微观简单介绍一下 ... -
FUTURE及FutureTask理解
2011-06-30 14:49 0import java.util.concurrent.Cal ... -
GridBagConstraints 学习
2011-06-29 16:56 0package com.az.test; import ... -
JVM最大线程数计算方法
2011-06-11 13:22 1651最近在应用服务器跑压力测试过程当中,出现无法创建线程的错误。在 ... -
.XML字符串和XML DOCUMENT的相互转换
2011-06-09 22:48 1571一、使用最原始的javax.xml.parsers,标准的jd ... -
Java性能的十一个用法
2011-05-30 16:30 0private static Credit BaseCred ... -
java clone
2011-05-30 16:12 0☆什么是Clone ☆实现Shallow clone ... -
JAVA 位移
2011-05-30 14:03 0“<<”, “>>”, “>&g ... -
EventListenerList 实例
2011-05-22 22:31 1331package com.hexun.sample; impo ... -
PropertyChangeSupport类
2011-05-22 22:09 1448PropertyChangeSupport类 ...
相关推荐
- **FreeMarker**支持更灵活的数据绑定方式,能够轻松地访问和操作Java对象的属性。 - **Velocity**的数据绑定功能虽然不如FreeMarker强大,但在简单应用中已经足够。 8. **模板继承与包含**: - **FreeMarker**...
Velocity模板语言(Velocity Template Language,简称VTL)是Velocity的核心,它提供了一种简单但功能强大的模板语言,允许用户通过模板文件引用Java对象属性,结合数据模型动态生成内容。 在本教程中,我们将介绍...
2. **设置Velocity属性**:通过调用`Velocity.SetProperty`方法设置了Velocity的几个关键属性,包括资源加载器、模板路径以及输入输出编码。 3. **初始化Velocity**:通过调用`Velocity.Init()`方法初始化Velocity...
Velocity通过简单的语法使得模板语言与Java代码隔离,提供了一种高效、灵活且易于维护的Web应用开发方式。 ### 1. Velocity简介 Velocity是由Apache软件基金会开发的一个开源项目,它最初设计用于生成静态网站内容...
- 配置Velocity引擎涉及到设置资源加载器、缓存策略、错误处理以及自定义指令等。 - 通过调整配置,可以优化Velocity的性能和适应不同项目需求。 5. **Velocity与MVC模式** - 在Model-View-Controller架构中,...
Apache Velocity 是一个基于 Java 的模板引擎,它提供了一种简单而强大的方法来创建和渲染格式化数据的文档。Velocity 的设计目的是使得开发者能够轻松地将数据模型与表现层进行分离,从而更灵活地管理和更新应用...
通过分析这个例子,我们可以更好地理解Velocity的工作方式及其在实际项目中的应用。 总结起来,Velocity 是一个强大而灵活的模板引擎,它简化了动态内容生成的过程,使得开发者可以专注于业务逻辑,而设计师则可以...
在Java Web开发中,Apache Velocity是一个常用的模板引擎,它允许开发者将内容和呈现逻辑分离,提供了一种高效的动态内容生成方式。本文将深入解析Velocity的初始化过程,帮助开发者更好地理解和使用这一工具。 ...
总的来说,Velocity 提供了一种高效、灵活的方式来处理模板和动态内容生成,简化了 Web 开发和其他文本生成任务,使得非程序员也能方便地参与到内容设计中。通过深入了解 VTL 和 Velocity 的工作原理,开发者可以更...
2. **加载模板**:使用`VelocityReader`或`ResourceLoader`加载模板文件。 3. **合并上下文和模板**:通过`VelocityTemplate.merge(context, writer)`方法,将上下文中的数据与模板结合,生成最终的输出。 4. **输出...
总结,Velocity提供了一种强大的方式来实现Java应用中的视图层与业务逻辑分离,通过简洁的模板语言和上下文管理,使得开发更高效。掌握Velocity的使用,可以提升你的Web开发效率,让你的应用具备更好的可维护性和可...
- 配置Velocity:通过创建`velocity.properties`文件来设置Velocity的属性,例如模板目录、缓存策略等。 3. **Java与Velocity的集成** - 创建Velocity模板:在项目的资源目录下创建`.vm`文件,编写包含VTL指令的...
Velocity 模板语言 (VTL) 是 Velocity 提供的一种用于定义模板的脚本语言。它具有以下特点: 1. **变量赋值**:使用 `$variable` 来引用变量,`$!variable` 来避免空指针异常。 2. **控制结构**:提供 `#if`, `#...
然而,它的应用并不仅限于此,正如标题所示,“Velocity Template的另类用法:生成XML”,我们可以利用其强大的文本处理能力来生成XML文档,这种方式在数据转换、报告生成或配置文件制作等方面非常实用。 首先,让...
- **Exceptions 异常**: 讨论了 Velocity 可能抛出的异常类型及其处理方式。 - **其它细节**: 提供了一些额外的信息,比如性能优化技巧等。 #### 七、Application Attributes (应用程序属性) - **Application ...
同时,需要在项目的类路径下放置`velocity.properties`文件,用于配置Velocity的行为,例如模板加载路径和缓存策略。 接下来,创建一个 Velocity模板文件,比如`velocityDemo.vm`。这个文件会包含HTML结构,其中...
- **Velocity属性**: Velocity支持大量的配置选项,可以通过设置这些属性来自定义其行为。 - **Resource Loaders**: 介绍了Velocity如何加载模板文件的不同策略。 - **事件**: Velocity支持事件监听机制,可以通过...
VTL是Velocity使用的模板语言,它提供了一种简洁的方式来将动态内容插入到Web页面中。VTL的主要元素包括: - **注释**:VTL支持单行注释(以`##`开始)和多行注释(在`#*`和`*#`之间)。 - **引用(References)**:...
三、Velocity实现分页步骤 1. 数据获取: 首先,你需要从数据库或其他数据源获取所有数据,并根据需求计算总页数。例如,如果每页显示10条记录,且总记录数为250,则总页数为25。 2. 创建分页模型: 在Java后端...
**三、Velocity基本语法** 1. **引用变量**:在Velocity模板中,可以使用`${variable}`来引用Java对象的属性,如`${user.name}`。 2. **控制结构**:Velocity支持条件语句(`#if`、`#elseif`、`#else`)和循环(`#...