`

Velocity之初识

阅读更多
一 环境: XP3+myeclipse6.6+JDK1.6
二 所需要的jar包: 见附件图片

三 示例代码
1 在src中创建一个example.vm,其内容如:
##声明一个变量:this并且设置值为:Velocity
#set( $this = "咫尺天涯")
##使用设置的变量值
这里是$this的博客!
##for打印集合信息数据
#foreach( $name in $list )
姓名:$name!
#end
##声明一个布尔值
#set( $condition = true)
## if else分支判断
#if ($condition)
The condition is true!
#else
The condition is false!
#end
姓名:$name,年龄:$age,性别:$sex
#foreach( $p in $listMap )
项目:$p.name,价格:$p.price;
#end

2 示例代码
package velocity;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

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


public class TestVelOcity {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		// 准备Velocity工作环境
		VelocityEngine ve = getVelocityEngine();

		// 准备数据
		VelocityContext context = getVelocityContext();

		// 准备模板文件
		Template template = ve.getTemplate("example.vm");

		
		if (template != null){
			// 准备输出流
			/*BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
			//此处很重要,设置输出内容与输出流,直接在控制台输出内容
			template.merge(context, writer);
			//关闭流
			writer.flush();
			writer.close();*/
			//以下可分开使用,此处只能选择一个来使用
			//获取模板内容:
			StringWriter getwriter = new StringWriter();
			template.merge(context, getwriter);
			String templateContext = getwriter.toString();			
			System.out.println(templateContext);			
		}				

	}

	// DAO返回数据
	@SuppressWarnings("unchecked")
	public static ArrayList getNames() {
		ArrayList list = new ArrayList();
		list.add("刘少奇");
		list.add("李逵");
		list.add("王熙凤");
		list.add("李四光");
		return list;
	}
	// DAO返回数据
	@SuppressWarnings("unchecked")
	public static ArrayList getNamesMap() {	
		ArrayList list = new ArrayList();
	    Map map = new HashMap();	
	    map.put("name", "书包");
	    map.put("price", "$100.00");
	    list.add( map );	
	    map = new HashMap();
	    map.put("name", "唱片");
	    map.put("price", "$59.99");
	    list.add( map );	
	    map = new HashMap();
	    map.put("name", "小菜");
	    map.put("price", "$3.99");
	    list.add( map );
		return list;
	}
	
	// DAO返回数据
	@SuppressWarnings("unchecked")
	public static Map getUserInfo() {
		Map<String, String> para = new HashMap<String, String>();
		para.put("name", "杨小燕 ");
		para.put("age", "45");
		para.put("sex", "女");
		return para;
	}	

	@SuppressWarnings("unchecked")
	private static VelocityContext getVelocityContext() {
		VelocityContext context = new VelocityContext();
		context.put("list", getNames());
		context.put("listMap", getNamesMap());		
		Map<String, String> para = getUserInfo();
		if (para.size() > 0) {
			for (String key : para.keySet()) {
				context.put(key, para.get(key));
			}
		}
		return context;
	}

	@SuppressWarnings("static-access")
	private static VelocityEngine getVelocityEngine() {		
		VelocityEngine ve = new VelocityEngine();
		Properties properties = new Properties();
		String fileDir = Thread.currentThread().getContextClassLoader()
				.getResource("").getPath();
		//String fileDir = TestVelOcity.class.getResource("/").getPath();
		// 将当前路径设置到VelocityEngine 中		
		properties.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH, fileDir);
		properties.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");
		properties.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
		properties.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");		
		ve.init(properties);
		return ve;
	}

}

四 链接学习:
使用Spring计时器和velocity模板定时生成静态html/jsp文件
http://gundumw100.iteye.com/blog/702521

  • 大小: 13.9 KB
分享到:
评论

相关推荐

    velocity实践——初识velocity

    NULL 博文链接:https://twb.iteye.com/blog/265761

    volecity初识

    《Volecity初识——构建高效模板引擎应用》 Volecity,又称Velocity,是一款开源的Java模板引擎,主要用于Web开发中的视图层处理。它将业务逻辑与表现层分离,使得开发者可以专注于内容和布局的设计,而无需关心...

    初识Hadoop.docx

    ### 初识Hadoop知识点详解 #### 一、大数据概览 **1. 大数据定义** - **概念解析**:大数据的概念并非特指某个具体的数据量级,而是指那些无法用传统的数据处理工具进行有效捕捉、管理和处理的数据集合。这种...

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf

    大数据的五大特征包括:大量(Volume)、高速(Velocity)、多样(Variety)、价值(Value)和真实性(Veracity)。大量指的是数据的规模庞大,传统的数据处理工具无法应对;高速则强调数据产生的速度极快,需要实时...

    初识 Struts2 第一节

    在Struts2中,视图层通常是JSP页面,但也可以是FreeMarker、Velocity等模板引擎。Action与视图之间的数据传递通过值栈(Value Stack)实现,Action中的属性会自动暴露到值栈,JSP可以通过OGNL(Object-Graph ...

    第一课 初识Unity3D.pdf

    ### Unity3D初识知识点详解 #### 一、Unity3D概述 - **Unity3D**:是一款由Unity Technologies开发的跨平台游戏引擎,适用于创建3D与2D图形交互应用,广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)等领域。...

    first_js_app-momentum

    标题“first_js_app-momentum”和描述“first_js_app-动量”暗示了这是一个关于使用JavaScript构建的初识JavaScript应用程序,特别关注动量概念。在编程领域,动量可能指的是程序运行时的状态或数据流的惯性。在这个...

    struts2学习笔记

    #### 二、初识Struts2配置文件 **1. web.xml文件** - 主要配置StrutsPrepareAndExecuteFilter,这是一个过滤器,负责初始化整个Struts框架并处理所有请求。 - 可以通过初始化参数来指定加载额外的XML配置文件,...

    Struts2完美教程

    #### 二、初识Struts2配置文件 **1. web.xml文件** - **作用**:配置StrutsPrepareAndExecuteFilter,它是Struts2的核心过滤器,负责初始化框架和处理HTTP请求。 - **配置项**:可以设置一些初始化参数,例如指定...

    struts2超详细笔记

    #### 二、初识struts2配置文件 struts2的配置主要包括以下几个文件: **(1)web.xml文件** - **StrutsPrepareAndExecuteFilter**:负责初始化整个struts框架,并处理所有请求。可以设置初始化参数,如指定加载...

    Struts2入门教程(全新完整版)

    3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 4 (5)其它配置文件 4 4.让MyEclipse提示xml信息 4 5.如何...

    大数据时代教师的定位28.pptx

    描述中提到的“深入认知初识大数据时代教师的实践”,意味着文稿会探讨大数据如何改变教学方法和教育管理。 标签“行业分类 PPT 文档资料”表明这是一个关于行业发展趋势,特别是教育行业的专业资料,以PPT的形式...

    深入浅出Struts2(附源码)

    第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 ...

    word源码java-hadoop-v1:hadoop入门

    初识hadoop 分布式文件系统HDFS 分布式资源调度YARN 分布式计算框架MapReduce Hadoop项目实战 数据仓库Hive Hive项目实战 Hadoop分布式集群搭建 大数据概述 商品推荐 预言家 大数据4V特征 1、数据量Volume 2、多样性...

    springMVC教程

    与其他 MVC 框架如 Struts 相比,SpringMVC 更加灵活,允许开发者选择不同的视图技术,比如 JSP、Velocity 或者 Tiles。此外,SpringMVC 与 Spring 框架无缝集成,能够利用 Spring 的其他特性,如事务管理、数据访问...

Global site tag (gtag.js) - Google Analytics