`
kaka99
  • 浏览: 52131 次
  • 性别: Icon_minigender_1
  • 来自: AC
社区版块
存档分类
最新评论

Velocity的中文指南(1)-整理

阅读更多

1.       关于

 

Velocity 用户指南旨在帮助页面设计者和内容提供者了解Velocity 和其简单而又强大的脚本语言(Velocity Template Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples 都同演示用于所有的页面和模版。

感谢选择Velocity!

 

2.       什么是Velocity?

Velocity 是一个基于Java的模版引擎。它允许web 页面设计者引用JAVA代码预定义的方法。Web 设计者可以根据MVC模式和JAVA程序员并行工作,这意味着Web设计者可以单独专注于设计良好的站点,而程序员则可单独专注于编写底层代码。Velocity 将Java 代码从web页面中分离出来,使站点在长时间运行后仍然具有很好的可维护性,并提供了一个除JSP和PHP之外的可行的被选方案。

Velocity可用来从模板产生web 页面,SQL, PostScript以及其他输出。他也可用于一个独立的程序以产生源代码和报告,或者作为其它系统的一个集成组件。这个项目完成后,Velocity将为Turbine web 应用程序框架提供模板服务。Velocity+Turbine 方案提供的模板服务将允许web 应用按真正的mvc模式进行开发。

 

3.       Velocity 可以做什么?

3.1.     Mud Store 示例

假设你是一个专门销售泥浆(MUD)的在线商店的页面设计者。我们称他为"The Online Mud Store"。生意很好。客户订购各种各样的类型和数量的泥浆。他们使用他们的用户名和密码登陆到商店中来,就可以浏览他们的订货和购买其他东西。现在,赤土陶泥正在促销,这是一种很常用的泥巴。一少部分顾客很有规律的购买一种亮红土Bright Red Mud,这也是促销产品,但是不太常用,因此被移到页面的边缘。所有顾客的信息都在数据库中被跟踪,因此有一天问题出现了: 为什么不使用Velocity来定位目标客户,这些客户对某种类型的产品特别感兴趣?

Velocity 使针对访问者个性的WEB页面客户化(个性化)非常容易。作为一个在线泥巴商店的站点设计者,以想在客户以登陆进展点后就看到它们想看的页面。

你遇到你公司的软件工程师,每个人都认为$customer 将保持当前登陆进入的客户信息,而$mudsOnSpecial 将士当前所有促销的泥巴。$flogger 对象包含有助于促销的方法。对于当前的任务,让我们仅关注这三个问题。记住,你不需要担心软件工程师如何从数据库中取得顾客信息,但你必须知道他们可以。这样可以使你专注于你的工作而软件工程师则忙于他们自己的工作。

你可以在你的页面中嵌入如下的VTL语句:

<HTML>

<BODY>

Hello $customer.Name!

<table>

#foreach( $mud in $mudsOnSpecial )

   #if ( $customer.hasPurchased($mud) )

      <tr>

        <td>

          $flogger.getPromo( $mud )

        </td>

      </tr>

   #end

#end

</table>

 

foreach 语句的细节将进一步细说,但重要的是这个短小的脚本居然可以在你的站点上运行。当有一个倾向于亮红土的顾客登陆进来时,亮红土正在促销,这就是这个顾客所看到的,并且促销显示非常显著。如果另外一个长期购买赤陶土的顾客登陆进来,赤陶土促销的提示信息则应该在前面中间位置。Velocity是非常灵活的,受限的只是你的创造力。

写在VTL参考文档中的是其他Velocity 元素,他们一起给你很强大的能力和灵活性以创建很好的站点。待你更加了解这些元素,就可以开始释放Velocity的强大动力。

4.        Velocity模板语言(VTL): 介绍

Velocity模板语言(VTL)旨在为Web页面结合动态内容提供最容易、简单和简洁的方法。即使有一点或者没有编程经验的页面设计者也可以很快能为页面提供动态内容。

VTL 使用引用(references )来将动态内容嵌入web页面,每个变量就是某一个类型的引用。变量实际上是一个可以调用定义在java代码中的内容的引用,或者它可以从页面内的VTL语句得出自身的值。下面是一个例子,说明可以嵌入到HTML文档中的VTL语句。

 

#set( $a = "Velocity" )

 

 

这个VTL语句,就像所有的VTL语句一样,以 # 字符开始,并跟着一个指令set。 当一个在线访问这请求页面时, Velocity 模伴引擎在页面内搜索所有# 字符,然后决定是哪一个标记了VTL语句的开始,哪个标记不需要VTL做什么动作。

 

# 字符后面紧跟一个指令 set.。set 指令使用一个括在括号内的表达式---一个等式将一个值指派给一个变量。变量在等号的左边而值在等号的右边。

 

在上面的示例中,变量是 $a 值是Velocity。 这个变量就象其他引用一样,以一个$字符开始。值通常在引号之中,对Velocity来说一般没有类型冲突的问题,因为只有字符串 (基于文本的信息)可以传递给变量。

 

下面的主要规则可能有助于理解Velocity 是如何工作的:引用以$开头用于取得什么东西,而指令以# 开始用于做什么事情。

在上面的例子中,#set 用于将一个值指派给一个变量。而变量$a 则可以用来在模板中输出"Velocity" 。

5.        Hello Velocity World!

一旦一个值被赋给一个变量,便可以在HTML中随处引用它。在下面的示例中,先给变量$foo 赋值然后引用它。

<html>

<body>

#set( $foo = "Velocity" )

Hello $foo World!

</body>

<html>

 

这个页面的结果是输出"Hello Velocity World!"。

为了使包含VTL 指令的语句具有可读性,我们鼓励每个VTL语句在一个新行开始,虽然并不一定要这样做。 set 将随后深入解释。

分享到:
评论

相关推荐

    velocity-engine-core-2.3-API文档-中文版.zip

    包含翻译后的API文档:velocity-engine-core-2.3-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.velocity,artifactId:velocity-engine-core,version:2.3 使用方法:解压翻译后的API...

    velocity-engine-core-2.3-API文档-中英对照版.zip

    包含翻译后的API文档:velocity-engine-core-2.3-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.velocity:velocity-engine-core:2.3; 标签:core、apache、engine、velocity、jar包、java、...

    velocity-tools-generic-3.1-API文档-中英对照版.zip

    包含翻译后的API文档:velocity-tools-generic-3.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.velocity.tools:velocity-tools-generic:3.1; 标签:apache、velocity、tools、generic、...

    velocity-engine-core-2.1.jar

    velocity-engine-core-2.1.jar

    Velocity用户手册---中文版.doc

    【Velocity简介】 Velocity是一个基于Java的模板引擎,它的核心功能是将静态的HTML模板与动态的Java代码相分离,让网页设计人员专注于页面布局,而程序员则专注于业务逻辑的实现。Velocity允许通过模板语言...

    velocity-1.5.jar,velocity-1.6.2-dep.jar,velocity-tools-1.3.jar

    1. **velocity-1.5.jar**: 这是Velocity的1.5版本。在这个版本中,Velocity提供了基本的模板引擎功能,包括变量替换、控制结构(如if、for、foreach)以及宏定义等。它支持JavaBean和Map对象的直接引用,并且通过...

    velocity(1.1---1.5所有包)

    velocity(1.1---1.5所有包) velocity-1.4 velocity-1.5 velocity-dep-1.3.1 velocity-tools-1.1 velocity-tools-generic-1.2 velocity-tools-view-1.2 velocity-tools-view-1.3

    velocity-tools-generic-3.1-API文档-中文版.zip

    包含翻译后的API文档:velocity-tools-generic-3.1-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.velocity.tools,artifactId:velocity-tools-generic,version:3.1 使用方法:解压翻译...

    velocity-tools-2.0.jar

    velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar velocity-tools-2.0.jar

    velocity-engine-core-2.0.jar

    velocity 2.0 包需要的 jar 包 官方下载的,测试过了,可以运行 Demo 网上都有,关键几行代码: // ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "file"); // 按文件加载 // ve.init(); // Template t = ...

    velocity基础教程--1.标准使用

    【Velocity基础教程——1.标准使用】 Velocity是一个开源的Java模板引擎,它允许开发者将HTML页面中的业务逻辑与展示逻辑分离。Velocity通过提供一个简单的模板语言来实现这一目标,使得非程序员也能轻松编辑模板,...

    velocity-engine-core-2.3.jar中文-英文对照文档.zip

    (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以...

    velocity-tools-view-2.0.jar

    velocity-tools-view-2.0.jar

    velocity-tools-view-2.0-beta1.jar

    velocity-tools-view-2.0-beta1.jar, 供大家使用

    velocity-tools-view-1.4.jar

    velocity-tools-view-1.4.jar

    velocity-1.7-API文档-中文版.zip

    包含翻译后的API文档:velocity-1.7-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:org.apache.velocity,artifactId:velocity,version:1.7 使用方法:解压翻译后的API文档,用浏览器打开“index....

    Velocity用户手册---中文版

    **Velocity用户手册中文版**是面向开发者的一份详尽指南,旨在帮助理解并熟练使用Velocity这一强大的模板引擎。Velocity作为Apache软件基金会的一个开源项目,它主要用于Web应用中的动态页面生成,通过分离表现层...

    velocity-tools-generic-2.0.jar

    velocity-tools-generic-2.0.jar

    avalon-logkit-2.1.jar,commons-collections-3.2.jar,velocity-1.4.jar,velocity-tools-view-1.2.jar

    • commons-collections-3.2.jar • velocity-1.4.jar • velocity-tools-view-1.2.jar • avalon-logkit-2.1.jar

    velocity模板使用指南中文版

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

Global site tag (gtag.js) - Google Analytics