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的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。...
Velocity模板邮件发送例子(Spring框架)(可通用,支持多扩展)Velocity模板邮件发送例子(Spring框架)(可通用,支持多扩展)
Velocity模板引擎 v2.2.0.zip
velocity与freemaker、jstl并称为java web开发三大标签技术,一、定义变量二、遍历数组三、遍历HashTable四、判断是否为空五、数值、日期格式化六、国际化七、内建对象八、include、parse实现布局模块化
Velocity模板技术语法详细介绍,包括很详细的示例代码 1.变量………………………………………………………………………………1 2.循环………………………………………………………………………………2 3.条件语句...
Velocity模板引擎技术在Java Web中的应用
Java Velocity模板引擎,简单字符串生成 https://blog.csdn.net/a497785609/article/details/130007990
Velocity模板解析,通过Velocity模板自动替换表达式中的变量
Velocity是一个基于java的模板引擎(template engine)。
Velocity模板实例 Velocity模板实例 Velocity模板实例 Velocity模板实例
java swing开发一款代码生成工具swing-generate,可通过velocity模板引擎在线定制模板
Velocity用户手册,主要讲解Velocity模板引擎的语法和使用
Velocity模板入门简单DEMO, 代码有注解;
本课程从velocity engine也就是velocity引擎开始, 先讲解velocity的基本使用以及基础语法 , 然后再讲解velocity 的进阶内容velocity Tools , 以及velocity作为web项目的视图改如何使用 , 每一部分都会有一个综合案例...
velocity使用1.7版本。 在win7下使用intelliJ IDEA建立一基于tomcat的web app项目,命名为todo_web,设置path为/todo,导入velocity相关jar包。只导入velocity-1.7.jar这个包可能会报错,根据提示再导入velocity自带...