`

Velocity,java的模板引擎,Velocity模板语言,Velocity使用方法【蕃薯耀】

阅读更多

类似于PHP中的Smarty,Velocity是一个基于java的模板引擎 (template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。从而实现界面和Java代码的分离,使得界面设计人员可以和java程序开发人员同步开发一个遵循 MVC架构的web站点。

另外,Velocity的能力远不止web站点开发这个领域,例如,它可以从模板 (template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。 Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

编写Velocity版的Hello World
获取Velocity相关JAR文件:

从http://velocity.apache.org/网站上下载最新的Velocity,这里我们下载了velocity-1.7.zip

相关Jar包添加到项目中:

解压velocity-1.7.zip,发下其根目录下有两个JAR文件:

velocity-1.7.jar velocity-1.7-dep.jar

其中velocity-1.7-dep.jar包含了:

velocity-1.7.jar commons-collections-3.2.1.jar commons-lang-2.4.jar oro-2.0.8.jar(这些JAR文件位于解压目录的lib目录下)

在JAR包不冲突的情况下可以直接使用velocity-1.7-dep.jar

载类路径下添加velocity.properties文件:

该文件一般包含如下配置:

runtime.log = F:\project\MusicalInstrumentsStore\velocity_example.log
file.resource.loader.path = F:\project\MusicalInstrumentsStore\vm
input.encoding = UTF-8
output.encoding = UTF-8

runtime.log指定日志文件存放位置
file.resource.loader.path指定模板的加载位置
input.encoding指定输入编码
output.encoding指定输出编码

在Java文件中初始化Velocity模板引擎并设置Velocity上下文的一些变量然后把生成的模板输出到StringWriter:
//初始化模板引擎
Velocity.init("src/velocity.properties");
//获取VelocityContext
VelocityContext context = new VelocityContext();
//为Context设置变量
context.put("title", "HelloWorld");
context.put("author", "arthinking");
//获取模板文件
Template template = Velocity.getTemplate("helloworld.vm");
StringWriter sw = new StringWriter();
//使用模板文件的merge函数合并模板和context提供的变量,输出到StringWriter中
template.merge(context, sw);
sw.flush();
System.out.println(sw.toString());
编写helloworld.vm模板文件(保存在file.resource.loader.path设置的目录下):
${who}
${content}

运行Java文件,使用Velocity生成的信息就打印出来了。

注:如果who为空时,${who}会原样输出,为了使之不输出,可以在$后加个!:$!{who}
Velocity模板语言基本语法
访问对象属性:

和使用EL表达式差不多,直接使用”.”导航。
如访问object对象的id属性:${object.id }

遍历List集合:
#foreach($element in $list)
        #element
#end
使用判断语句:
#if($condition)
        true
#else
        false
#end
获取迭代索引值:

默认使用变量名:$velocityCount
也可以自定义此变量名,在velocity.properties中设置:

directive.foreach.counter.name=index

设置索引起始位置为0:

directive.foreach.counter.initial.value=0
遍历Map变量:
#foreach($key in $map.keySet())
        $key : $map.get($key)
#end
在模板中进行赋值:
#set(#a=”Hello World!”)
$a

#set($array1=[1..10])
#foreach($entry in $array1)
        #entry
#end
使用Velocity模板引擎生成文件:
//初始化模板引擎
Velocity.init("src/velocity.properties");
//获取VelocityContext
VelocityContext context = new VelocityContext();
//为Context设置变量
context.put("content", "HelloWorld");
context.put("who", "arthinking");
//获取模板文件
Template template = Velocity.getTemplate("helloworld.vm");
//创建输出文件
File output = new File("D:/Velocity/1.html");
if(!output.getParentFile().exists())
        output.getParentFile().mkdir();
//创建输出流
FileOutputStream outputStream = new FileOutputStream(output);
OutputStreamWriter writer = new OutputStreamWriter(outputStream);
BufferedWriter bufferedWriter = new BufferedWriter(writer);
template.merge(context, bufferedWriter);

bufferedWriter.flush();
outputStream.close();
bufferedWriter.close();


本文转自:http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax-and-basic-use.html

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2012年10月10日 17:08:42 星期三


1
6
分享到:
评论
1 楼 SoftMiner 2012-10-12  
其实感觉thymeleaf也不错的哦,spring推荐

相关推荐

    Velocity--java的模板引擎

    **Velocity——Java的模板引擎** Velocity是Apache软件基金会下的一个开源项目,它是一个基于Java的模板引擎,专门用于生成动态Web内容。Velocity的目标是将HTML、XML等模板语言与业务逻辑分离,使得开发者可以专注...

    Velocity模板引擎技术在Java Web中的应用.pdf

    * Velocity模板引擎技术需要学习Velocity模板语言和Velocity模板引擎的使用方法。 * Velocity模板引擎技术需要配置Velocity模板引擎和Java代码的集成。 Velocity模板引擎技术是Java Web开发中的一种重要技术,旨在...

    Velocity模板引擎Velocity模板引擎

    Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎

    velocity文档(Velocity1.4java开发指南中文版,Velocity1.4模板使用指南中文版中文版)

    Velocity 是一个开源的 Java 模板引擎,它允许开发者将静态页面内容与动态数据分离,使得开发者可以专注于业务逻辑,而设计师则可以专心于页面设计。Velocity1.4 是该引擎的一个版本,发布于较早时期,但其基本原理...

    Java进阶教程Velocity快速掌握模板引擎视频

    本课程从velocity engine也就是velocity引擎开始, 先讲解velocity的基本使用以及基础语法 , 然后再讲解velocity 的进阶内容velocity Tools , 以及velocity作为web项目的视图改如何使用 , 每一部分都会有一个综合案例...

    velocity开发包vm模板引擎

    Velocity是一款强大的Java模板引擎,由Apache软件基金会开发并维护,它是Apache Jakarta项目的一部分。 Velocity的主要设计目标是将表现层逻辑从应用逻辑中分离出来,使开发者可以专注于业务逻辑的实现,而无需关心...

    JavaScript模板引擎Velocity.js.zip

    Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。...

    Java的模板引擎Velocity初体验.pdf

    Velocity 是一种 Java 模板引擎技术,由 Apache 提出,是一种基于 Java 的模板引擎,允许任何人使用简单而强大的模板语言来引用定义在 Java 代码中的对象。Velocity 的主要功能是桥梁 Model 和 View 之间,作为它们...

    velocity模板引擎

    Velocity模板引擎为Java Web开发提供了强大且灵活的功能支持。通过上述知识点的学习,我们可以了解到Velocity的基本用法,包括变量定义、循环、条件判断、格式化、国际化支持等方面的内容。这些知识点是使用Velocity...

    《Velocity java开发指南》中文版

    《Velocity Java开发指南》中文版是一本专注于介绍Velocity这一开源模板引擎的书籍。Velocity是一个用于生成静态或动态内容的模板解决方案,尤其适用于Java开发者。它能够帮助开发者将静态页面元素与动态数据相结合...

    Java Velocity模板引擎,简单字符串生成

    Java Velocity模板引擎是一种基于Apache软件基金会的开源项目...这就是Java Velocity模板引擎的基本使用方法和核心概念。它通过简单易懂的模板语言,实现了Java代码和HTML的解耦,使得动态内容生成变得更加高效和灵活。

    Velocity_中文手册

    Velocity是一个基于Java的模板引擎,它的主要用途是将动态内容嵌入到Web页面中。模板引擎是一种将模板(template)和数据结合生成文档的软件。Velocity通过使用简单而功能强大的脚本语言——Velocity模板语言...

    JAVA的Velocity语法学习

    通过以上介绍,我们可以看到Velocity是一个强大且灵活的模板引擎,对于Java开发者来说,掌握Velocity的使用可以提升开发效率,使代码更专注于业务逻辑,而不是页面展示。希望这份资料能帮助你更好地学习和应用...

    SpringBoot Velocity 代码生成模板

    同时,还需要在代码中创建Velocity的上下文对象,并注入需要的数据,然后使用Velocity引擎渲染模板并生成代码。 7. **最佳实践**: 在实际应用中,可以结合Maven或Gradle的插件来实现代码生成任务,如MyBatis的...

    Velocity模板语言介绍

    Velocity是一种基于Java的模板引擎(template engine),它使得非技术背景的人员能够轻松地使用一种简洁的模板语言来引用由Java代码所定义的对象。这种特性使得Velocity成为了连接Java编程与前端设计的理想桥梁。 ###...

    velocity模板使用指南中文版

    Velocity 是一种流行的模板引擎,广泛应用于Java 和 .Net 平台。它提供了一个灵活、可扩展的模板语言,能够根据需要生成动态内容。本文档是 Velocity 模板使用指南中文版,旨在帮助开发人员快速掌握 Velocity 的...

    JAVA velocity模板引擎使用实例

    Java Velocity模板引擎是一个强大的、轻量级的模板语言,它允许开发者将显示逻辑与业务逻辑分离,使得网页设计和后端代码更加独立。Velocity由Apache软件基金会开发,并广泛应用于Java Web应用中,提供动态内容生成...

    基于Java语言的Velocity模板引擎集成工具设计源码

    该项目是一款基于Java语言的Velocity模板引擎集成工具设计源码,包含245个文件,涵盖142个Java源文件、44个VM模板文件、24个XML配置文件、13个属性文件、8个文本文件、3个JSON文件、2个HTML文件和各1个gitignore、...

    浅谈Java模板引擎性能对比

    本文将对JSP、Thymeleaf 3、Velocity 1.7、Freemarker 2.3.23等四种主流Java模板引擎的性能进行对比,以帮助开发者选择合适的模板引擎。 JSP模板引擎 JSP(JavaServer Pages)是Java Servlet技术的扩展,用于生成...

Global site tag (gtag.js) - Google Analytics