`

Velocity简介和实例

    博客分类:
  • java
阅读更多

-- velocity的简介,不想看可以略过,直接看实例,其实可以全部略过滴 -----------------

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当 作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

 

package com.velocity.demo;

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;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;

public class PromotedVelocityDemo
{
	public static void main(String[] args) throws Exception, ParseErrorException, Exception
	{
		VelocityEngine ve = getVelocityEngine();
		VelocityContext context = getVelocityContext();
		Template template = ve.getTemplate("com/velocity/demo/promotedTemple");
		if(template != null){
			StringWriter getWriter = new StringWriter();
			template.merge(context, getWriter);
			System.out.println(getWriter);
		}
		
	} 
	 public static ArrayList getNames() {  
	        ArrayList list = new ArrayList();  
	        list.add("刘少奇");  
	        list.add("李逵");  
	        list.add("王熙凤");  
	        list.add("李四光");  
	        return list;  
	    }  
	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;  
    }  
	public static Map getUserInfo(){
		Map<String,String> para = new HashMap<String,String>();
		para.put("name", "dirk.zhang");
		para.put("age", "20");
		para.put("sex", "male");
		return para;
	}
	public 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;
	}
	public static VelocityEngine getVelocityEngine() throws Exception{
		VelocityEngine ve = new VelocityEngine();
		Properties properties = new Properties();
		String fileDir = Thread.currentThread().getContextClassLoader().getResource("").getPath();
//		ve.setProperty(Velocity.RESOURCE_LOADER, "class");
//		ve.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
		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;
		
	}

}

 下面是模板文件:

##声明一个变量: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  
 velocity使用简单,一看便知,老少皆宜的好东东
分享到:
评论

相关推荐

    Velocity入门小实例,纯java工程

    本实例旨在帮助初学者快速入门Velocity,理解其基本用法和核心概念。 1. **Velocity简介** Velocity是一个基于Java的模板引擎,它允许开发者在模板中使用特定的语法(Velocity Template Language, VTL)来插入动态...

    velocity生成静态页面实例

    通过学习和运行这个实例,你可以更深入地理解Velocity如何工作,以及如何在实际项目中应用它来生成静态页面。 总之,Velocity是一个强大的工具,能够帮助开发者快速、高效地构建动态网站的静态页面。通过分离模板和...

    Java Web项目开发案例精粹--Velocity简单实例

    1. **Velocity简介** Velocity是由Apache软件基金会开发的开源项目,它是基于Java的模板引擎,遵循MVC(Model-View-Controller)设计模式。Velocity的目的是使开发者能够用简单的语法在模板中插入Java代码,生成...

    Velocity模板实例

    Velocity模板实例 Velocity模板实例 Velocity模板实例 Velocity模板实例

    velocity 简单实例

    这个简单的实例将会帮助我们理解如何在实际项目中使用 Velocity。 首先,我们需要了解 Velocity 的基本概念。Velocity 模板语言(VTL)是 Velocity 的核心,它允许我们在模板中插入变量和控制结构,如条件语句和...

    Velocity入门教程实例

    Velocity是一个基于Java的模板引擎,它主要的作用是在Web开发中...总之,Velocity模板引擎因其简单和功能强大的特点,在Java Web开发中被广泛地采用,它支持开发者进行高效的模板设计,提高了Web应用的开发和维护效率。

    velocity+struts2实例,适合开发和整合使用

    总的来说,这个实例提供了一个基础的框架,可以帮助开发者了解和实践如何将Struts2的业务逻辑与Velocity的视图呈现相结合,以创建高效、可扩展的Java Web应用程序。通过对这两个框架的深入理解和合理利用,开发者...

    struts2与velocity集成 实例

    为了运行这个集成实例,你需要确保已经正确配置了Struts2和Velocity的相关依赖,并在web.xml中配置Struts2的过滤器。一旦设置完成,你就可以通过浏览器访问对应的Action URL,看到由Velocity渲染出的动态页面。 总...

    velocity的web和java实例(可直接运行)

    在这个"velocity的web和java实例"中,我们可以学习如何将Velocity与Java应用程序和Web项目结合使用。 1. **Velocity模板语言 (VTL)** Velocity模板语言是一种简单但功能强大的标记语言,用于在模板中插入动态内容...

    SpringMVC+MyBatis+CXF+Velocity可运行实例

    1):含有spring-3.2.8.RELEASE.jar、velocity-tools-2.0.jar、velocity-1.7.jar、mybatis-spring-1.0.2.jar、mybatis-3.0.6.jar、cxf-api-2.2.9.jar等丰富的jar包。 2):采用spring3.2作为bean容器管理,...

    velocity实例

    在"velocity实例"中,我们可以看到几个特定的模板文件: 1. getter.vm:这个模板可能包含了生成getter方法的代码结构,开发者可以根据需求定制获取属性值的方法。 2. test.vm:可能用于生成单元测试代码,帮助快速...

    Maven 整合 Spring mvc + Mybatis + Velocity 的实例

    在我们的实例中,Maven将帮助我们集成Spring MVC、Mybatis和Velocity,并确保所有必要的库都处于正确的位置。 **Spring MVC** Spring MVC是Spring框架的一个模块,专门用于处理Web应用的请求-响应模型。它提供了一...

    springmvc+mybatis+velocity整合实例

    总的来说,"springmvc+mybatis+velocity整合实例"提供了一个轻量级且功能齐全的Web开发基础,适合快速搭建项目。通过这个整合,开发者可以充分利用Spring MVC的控制层优势、MyBatis的数据访问便捷性,以及Velocity的...

    Maven + Spring mvc + Mybatis + Velocity 整合实例

    本示例提供了一个基于Maven、Spring MVC、Mybatis和Velocity的整合实例,旨在帮助开发者理解并掌握这四大技术栈的协同工作方式。这四个组件在Java Web开发中扮演着至关重要的角色: 1. Maven:Maven是一款项目管理...

    velocity中文资料以及实例详解

    总的来说,Velocity通过其直观的VTL语法和丰富的指令集,使得动态内容的生成变得简单易懂,适合网页设计师和开发人员共同协作。它的灵活性和可扩展性使其在生成各种类型的输出文件时都表现出色,不仅限于网页,还...

    struts2+spring+velocity扩展实例V1版本

    这个实例是一个学习和实践Struts2、Spring和Velocity集成的好材料,对于想要深入了解这三大框架的开发者来说,通过分析源代码,可以学习到如何有效地组合使用这些工具,提升自己的Java Web开发技能。后续版本的整合...

    velocity+ibatis+mysql+exlipse实例

    velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例 velocity+ibatis+mysql+exlipse实例

    velocity官方实例

    **Velocity官方实例详解** Velocity是Apache软件基金会的一个开源项目,它是一个基于Java的模板引擎,用于生成动态内容。Velocity在Web开发中常被用来生成HTML、XML、Java源代码等静态页面,尤其适用于构建可定制化...

    Velocity模板应用案例

    Velocity的核心理念是“分离关注点”,即设计人员负责页面布局和外观,而开发者处理数据和业务逻辑。 案例一:网站生成 Velocity可以用于构建动态网站。例如,在#set指令中设置变量,然后在模板中引用这些变量来...

Global site tag (gtag.js) - Google Analytics