`

用Apache Velocity模板引擎速造网站

阅读更多

模板引擎的设计思想最早由Webmacro提出

Velocity模板引擎


模板引擎的设计思想最早由Webmacro提出,并被应用在一个著名的搜索引擎www.altavista.com上。后来,这种思想渐渐被Apache开发小组所采用,并作为一个子项目被提出来,这就是现在的Velocity。


模板引擎与MVC中视图部分的关系更为密切。Velocity可以应用在任何需要格 式化数据显示的Java程序中。那么Velocity到底是什么呢?它的官方解释是:“Velocity是一种基于Java的模板引擎,它允许任何人使用 简单而强大的模板语言来引用定义在Java代码中的对象。”


使用Velocity的优点在于:


◆ 很容易集成在各种各样的程序领域中;


◆ 为网页制作人员提供了一种清晰而简单的语法;


◆ 因为模板和代码是分离的,所以可以分别独立的开发和维护它们;


◆ Velocity引擎可以很容易地集成到一些Java运行环境,特别是Servlet中;


◆ Velocity使得模板可以访问任何环境对象中的共有方法。



Velocity的强大之处还在于它严格地区分程序开发功能的职责划分。它通过限制 模板可能访问的对象(即后台程序允许其得到的对象)来实现这一点。这意味着网页设计人员可以只把精力放在数据的显示部分(View),而程序员则只要关注 如何写好程序的控制层(Controller)、商业逻辑与数据管理(Model)。这就是典型的MVC开发模式,它简化了开发和日益复杂的应用和维护工 作。


Velocity最擅长做的工作包括:


◆ 基于Servlet的网站制作;


◆ Java和SQL代码生成;


◆ XML处理和转换;


◆ 文字处理,比如生成trf文件等。



不过,Velocity用得最多的还是在基于Java Servlet的网页程序中做生成网页的引擎,以替代JSP等技术。除了使用比较容易外,它提供了强大的模板语言来显示和操作数据。注意,不是生成数据,这点很重要,因为生成工作应该是程序逻辑的部分。


Velocity非常适合在J2EE(Java 2 Platform,Enterprise Edition)的网站开发中替代JSP,做输出页面的技术工作。虽然JSP包含在J2EE规范中,但是J2EE本身并不需要JSP。


用Velocity做网页


Velocity是如何工作的呢?虽然大多数Velocity的应用都是基于Servlet的网页制作,但是为了说明Velocity的使用,这里将采用更通用的Java Application来说明它的工作原理。


任何Velocity的应用都包括模板制作和程序部分两个方面。按照惯例,采用HelloWorld来作为第一个程序的示例。


1. 模板制作模板示例hellosite.vm的内容如下(虽然其不是以HTML为主,但很容易改成一个HTML的页面):


Hello $name! Welcome to $site world!




2.Java程序部分


下面是Java代码:



import java.io.StringWriter;

import org.apache.velocity.app.VelocityEngine;

import org.apache.velocity.Template;

import org.apache.velocity.VelocityContext;

public class HelloWorld

{

public static void main( String[] args )

throws Exception

{

/* first, get and initialize an engine */

VelocityEngine ve = new VelocityEngine();

ve.init();

/* next, get the Template */

Template t = ve.getTemplate( "hellosite.vm" );

/* create a context and add data */

VelocityContext context = new VelocityContext();

context.put("name", "Eiffel Qiu");

context.put("site", "http://www.eiffelqiu.com");

/* now render the template into a StringWriter */

StringWriter writer = new StringWriter();

t.merge( context, writer );

/* show the World */

System.out.println( writer.toString() );

}

}




将这两个文件放在同一个目录下,编译运行,结果是:



Hello Eiffel Qiu! Welcome to http://www.eiffelqiu.com world




为了保证运行顺利,请从Velocity的网站http://jakarta.apache.org/velocity/上下载Velocity的运行包,并将其中Velocity Jar包的路径放在系统的Classpath中,这样就可以顺利编译和运行以上程序了。

分享到:
评论

相关推荐

    stillness:与 Apache Velocity 语法相同的提取模板引擎

    寂静与 Apache Velocity 语法相同的提取模板引擎。基本理念通过尝试将模板与格式化文本进行匹配来填充 Apache Velocity 上下文(又名字符串 -> 对象映射)。调用例子: import stillness.Stillness;import stillness...

    速度引擎:Apache Velocity Engine的镜像

    Apache Velocity是用Java编写的通用模板引擎。 有关Velocity的更多信息,请参阅HTML文档。 这是顶级目录的描述: velocity-engine-core/ The Velocity Engine core modulevelocity-engine-examples/ Several simple...

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

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

    Apache-Velocity

    apache-velocity提供了强大了模板引擎功能,为我们动态生成代码及代码片段提供了很好地支持,本资源包含了velocity使用文档及相应的jar包

    velocity-1.7-sources.zip

    Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上。Velocity 是 Apache 基金会的项目,开发的目标是分离 MVC 模式中的持久化层和业务层。但是在实际应用过程中,...

    Apache click

    (其他模板引擎也支持,比如JSP 和Freemarker) 此框架采用一个简单的Servlet,叫做ClickServlet,,来扮演一个请求分发者。当一个请求来到时, ClickServlet 创建一个Page 对象来处理请求,并使用页面Velocity 模板来...

    velocity-1.7 相关

    Velocity是由Apache软件组织提供的一项开放源码项目,它是一个基于Java的模板引擎。 通过Velocity模板语言(Velocity Template Language,VTL)定义模板(Template),并且在模板中不包含任何Java程序代码。

    apache click-2.3.0框架 例子(1)

    Apache Click 是一个先进的Java企业版的Web应用程序框架... * 支持 Velocity、JSP、FreeMarker 等模板引擎 * 采用 Apache 开源协议 * 支持 JDK 1.4 以及以后的版本 感觉兴趣以的朋友可以下载看一下,这是第一部分。。

    camel-chunk:使用 Java 块模板引擎的骆驼块组件

    Chunk 是一个类似于 Apache Velocity、Mustache Java 和 Freemarker 的 Java 模板引擎 chunk:组件允许使用 Chunk 模板处理消息。 这在使用模板构建请求响应时很有用。 Maven 用户需要为这个组件在 pom.xml 中添加...

    javaweb项目代码生成器

    代码生成器: 该项目为代码生成器 基于Apache Velocity的 Java模板引擎

    javaweb项目,代码生成工具(Java源码)

    该项目为代码生成器 基于Apache Velocity的 Java模板引擎 base_build文件夹为最原始代码 为整理后的版本 执行: com.mmk.BaseApplication.java或生成jar包:run Maven intall 访问路径:...

    velosurf-开源

    Velosurf是Apache Velocity模板引擎的数据库访问层。 它提供表和关系的自动数据库映射,而无需任何代码生成,并提供身份验证,本地化和表单验证工具。

    restlet-jee-2.1.1.zip

    使用FreeMaker或Apache Velocity模板引擎,你可以很容易地创建基于JSP式模板的表示(representations)。你甚至可以像普通Web服务器那样,用一个支持内容协商(content negotiation)的Directory类来返回静态文件与...

    restlet-jse-2.1.1.zip

    使用FreeMaker或Apache Velocity模板引擎,你可以很容易地创建基于JSP式模板的表示(representations)。你甚至可以像普通Web服务器那样,用一个支持内容协商(content negotiation)的Directory类来返回静态文件与...

    Velocity editor plugin for Eclipse-开源

    该项目为Apache模板引擎Velocity(http://velocity.apache.org/)的脚本语言提供了一个编辑器。 该编辑器被实现为Eclipse平台(http://eclipse.org/)的插件。

    基于SpringBoot的代码生成器的设计和实现.doc

    本系统使用模板引擎Apache Velocity来实现从模型到代码的渲染,使用MySQL数据库来储存模型和模板信息,网页前端使用Vue框架和Ajax技术进行设计。本文对该设计进行了初步的实现,并对代码生成功能进行测试,生成的...

    独立与项目外部的javaweb代码生成器

    该项目为代码生成器 基于Apache Velocity的 Java模板引擎 base_build文件夹为最原始代码 为整理后的版本 执行: com.mmk.BaseApplication.java或生成jar包:run Maven intall 访问路径:...

    poi-tl:Java中以{{template}}模板化的最小word(docx)

    poi-tl(poi-template-language) Word模板引擎,基于Apache POI-Microsoft文档的Java API。什么是poi-tl FreeMarker,Velocity基于文本模板和数据生成新HTML页面,配置文件等,poi-tl是Word模板引擎,基于Microsoft...

    基于SpringBoot+SpringCloud+Mybatis主流框架搭建的分布式敏捷开发系统架构+源代码+文档说明

    Velocity | 模板引擎 | [http://velocity.apache.org/](http://velocity.apache.org/) FontAwesome | 图标CSS分类参考 | [http://www.yeahzan.com/fa/facss.html](http://www.yeahzan.com/fa/facss.html) H+ | 后台...

    java开发常用jar包

    commons-beanutils.jar Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar ...velocity基于java的模板引擎,允许用简单的模板语言来引用java定义的对

Global site tag (gtag.js) - Google Analytics