package com.bcgogo.product.model;
import org.apache.velocity.*;
import org.apache.velocity.Template;
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.resource.loader.StringResourceLoader;
import org.apache.velocity.runtime.resource.util.StringResourceRepository;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Properties;
/**
* Created by IntelliJ IDEA.
* User: WWW
* Date: 12-9-3
* Time: 上午9:58
* To change this template use File | Settings | File Templates.
*/
public class Example {
public Example() {
try {
/*
* setup
*/
Properties p = new Properties();
p.setProperty("runtime.log", "velocity.log");
p.setProperty(VelocityEngine.RESOURCE_LOADER, "string");
p.setProperty("string.resource.loader.class", "org.apache.velocity.runtime.resource.loader.StringResourceLoader");
Velocity.init(p);
/*
* Make a context object and populate with the data. This
* is where the Velocity engine gets the data to resolve the
* references (ex. $list) in the template
*/
VelocityContext context = new VelocityContext();
context.put("list", getNames());
StringResourceRepository repo = StringResourceLoader.getRepository();
String myTemplateName = "goodsStoragePrint";
String myTemplate = "#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";
//模板资源存放 资源库 中
/**\
* myTemplateName资源名称
* myTemplate 资源内容
*/
repo.putStringResource(myTemplateName, myTemplate);
/*
* get the Template object. This is the parsed version of your
* template input file. Note that getTemplate() can throw
* ResourceNotFoundException : if it doesn't find the template
* ParseErrorException : if there is something wrong with the VTL
* Exception : if something else goes wrong (this is generally
* indicative of as serious problem...)
*/
Template template = null;
try {
template = Velocity.getTemplate(myTemplateName);
} catch (ResourceNotFoundException rnfe) {
System.out.println("Example : error : cannot find template " );
} catch (ParseErrorException pee) {
System.out.println("Example : Syntax error in template " + ":" + pee);
}
/*
* Now have the template engine process your template using the
* data placed into the context. Think of it as a 'merge'
* of the template and the data to produce the output stream.
*/
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(System.out));
if (template != null)
template.merge(context, writer);
/*
* flush and cleanup
*/
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) {
Example t = new Example();
}
}
分享到:
相关推荐
Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎
"Velocity模板引擎技术在Java Web中的应用" Velocity模板引擎技术是Java Web开发中的一种重要技术,旨在解决Java Web页面视图和业务逻辑的耦合问题。通过使用Velocity模板引擎技术,可以将Java Web页面视图和业务...
### Velocity 模板引擎知识点详解 #### 一、Velocity简介及基本概念 Velocity与Freemarker、JSTL并称为Java Web开发中的三大标签技术。Velocity是一种基于Java的模板引擎,它允许Web开发者通过简单的模板语法来生成...
Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。...
Velocity是一款强大的Java模板引擎,由Apache软件基金会开发并维护,它是Apache Jakarta项目的一部分。 Velocity的主要设计目标是将表现层逻辑从应用逻辑中分离出来,使开发者可以专注于业务逻辑的实现,而无需关心...
Velocity是一个基于Java的模板引擎,它的主要用途是将动态内容嵌入到Web页面中。模板引擎是一种将模板(template)和数据结合生成文档的软件。Velocity通过使用简单而功能强大的脚本语言——Velocity模板语言...
在Velocity模板中,开发者可以使用特定的指令(如#$或##)来插入Java代码片段,这些代码会被引擎解析并执行,然后将结果插入到模板的相应位置。这样,模板设计者可以专注于页面布局,而程序员则关注业务逻辑。 ...
在Spring Boot项目中,利用Velocity模板引擎,我们可以创建一系列模板文件,如Mapper、Mapper.xml、Service和Controller等,这些模板在运行时会根据数据库中的表结构动态生成对应的Java源码。这不仅避免了手动编写...
Velocity模板技术语法详细介绍,包括很详细的示例代码 1.变量………………………………………………………………………………1 2.循环………………………………………………………………………………2 3.条件语句...
Velocity 是一种基于 JAVA 的模板引擎,开发人员使用简单的模板语言就可以快速开发显示层,它使得显示层与程序代码分离。在 Struts2 框架中,Velocity 模板引擎可以与 Struts2 集成,实现了显示层与程序代码的分离。...
- `Velocity.init()`初始化引擎,`Velocity.evaluate()`或`Velocity.mergeTemplate()`用于处理模板并生成输出。 4. **模板继承与导入** - 使用`#include`或`#parse`指令引入其他模板文件,实现模板复用。 - `#...
在IT行业中, Velocity是一款强大的模板引擎,常用于生成动态网页内容。它被广泛应用于Java Web开发,尤其是在Spring框架中,可以结合使用来实现高效的邮件发送功能。本示例将详细介绍如何利用Velocity模板和Spring...
Java Velocity模板引擎是一种基于Apache软件基金会的开源项目,用于生成动态内容。它是Java应用程序中用于创建HTML、XML、电子邮件等静态或动态文档的强大的模板语言和库。Velocity旨在将内容展示与业务逻辑分离,使...
Velocity模板语言(Velocity Template Language,简称VTL)是Apache软件基金会的Velocity项目中的一部分,它是一种用于生成动态网页内容的模板引擎。Velocity以其简洁、易读的语法,为Java开发者提供了一种高效的...
该项目是一款基于Java语言的Velocity模板引擎集成工具设计源码,包含245个文件,涵盖142个Java源文件、44个VM模板文件、24个XML配置文件、13个属性文件、8个文本文件、3个JSON文件、2个HTML文件和各1个gitignore、...
总结来说,Velocity小例子主要展示了如何在Java应用中使用Velocity模板引擎生成动态内容。通过学习和实践这个例子,你可以掌握如何定义变量、使用指令和宏,以及如何通过上下文传递数据,从而更好地理解和应用...