`
shuai1234
  • 浏览: 978058 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Velocity,java的模板引擎

    博客分类:
  • java
 
阅读更多

类似于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();
分享到:
评论

相关推荐

    Velocity--java的模板引擎

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

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

    "Velocity模板引擎技术在Java Web中的应用" Velocity模板引擎技术是Java Web开发中的一种重要技术,旨在解决Java Web页面视图和业务逻辑的耦合问题。通过使用Velocity模板引擎技术,可以将Java Web页面视图和业务...

    浅谈Java模板引擎性能对比

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

    velocity开发包vm模板引擎

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

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

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

    《Velocity java开发指南》中文版

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

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

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

    velocity模板引擎

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

    JavaScript模板引擎Velocity.js.zip

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

    SpringBoot Velocity 代码生成模板

    在Spring Boot项目中,利用Velocity模板引擎,我们可以创建一系列模板文件,如Mapper、Mapper.xml、Service和Controller等,这些模板在运行时会根据数据库中的表结构动态生成对应的Java源码。这不仅避免了手动编写...

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

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

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

    Java Velocity模板引擎是一种基于Apache软件基金会的开源项目,用于生成动态内容。它是Java应用程序中用于创建HTML、XML、电子邮件等静态或动态文档的强大的模板语言和库。Velocity旨在将内容展示与业务逻辑分离,使...

    java swing开发一款代码生成工具swing-generate,可通过velocity模板引擎在线定制模板

    Velocity 是一个开源的Java模板引擎,它允许开发者将HTML或者XML模板与Java代码相结合,生成动态内容。Velocity 的设计目标是使模板语言尽可能地保持逻辑独立于呈现逻辑,这样开发者就能专注于模板的设计,而不用...

    Velocity java 模板

    Velocity是Apache软件基金会的一个开源项目,它是一款Java模板引擎,主要用在Web开发中,用于生成动态网页内容。Velocity通过将HTML或者XML模板与Java代码分离,使得开发者可以专注于业务逻辑,而设计师则能专注于...

    Velocity_中文手册

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

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

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

    Velocity模板引擎 v2.2.0.zip

    Velocity模板引擎是一款强大的Java模板引擎,它被广泛用于Web开发中生成动态HTML页面。v2.2.0是Velocity的一个稳定版本,提供了高效且灵活的模板处理能力,使得开发者能够将逻辑代码与视图设计分离,提高代码的...

    JAVA的Velocity语法学习

    提供的《Velocity_java开发指南》和《Java的模板引擎Velocity初体验》两本书籍是学习Velocity的好资料。它们会详细介绍Velocity的使用方法、语法特性以及最佳实践,对于初学者来说非常有帮助。同时,Apache官网也有...

    JAVA velocity模板引擎使用实例

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

Global site tag (gtag.js) - Google Analytics