java velocitycontext_CHAPTER 6 理解模板和上下文

在之前的章节里,我们介绍了Velocity和Hello World示例,并从中看到了Velocity的一些简单应用,是时候学习Velocity核心组件了。本章将深入学习模板和上下文。后续章节将在本章知识的基础上,详细讨论Velocity的引用、指令和宏。

使用模板

Velocity是一个模板引擎,使用Velocity进行开发将是一件非常愉快的事。但是如何来制作模板呢?Velocity的模板定义和许多领域使用的模板概念相似,比如许多文本处理包为通用文档提供了文档处理的预定义包,如office备忘录等,这些都与Velocity模板的概念相当接近。Velocity俱乐部应用程序窗体(详见Figure 6.1)是常规模板的另一个例子。

05fbf4dfc9df00216804415943e36c75.gif

Figure 6.1An example of a general template.

Velocity俱乐部应用程序的内容包含了两个部分的内容:静态内容和动态内容。静态内容由标题、标签(如:First Name:,Last Name:等)、问题和全部的布局等组成;动态内容就是表单中的下划线部分,用于申请人填写个人信息。

普通模板定义(如Velocity俱乐部应用程序的模板)和真实的Velocity模板最大的不同之处在于,Velocity的动态内容是指定的。当应用程序窗体依赖于插入空白部分的动态内容时,Velocity使用了引用的概念。现在,你可以简单想一下,Velocity引用就好比某种实体引用了一个存储在别处的值。比如,基于Velocity引用的基本语法,一个模板或许包含了一个名叫$name的实体和字符串“John Doe”对应,该字符串一般存储在模板外的某个地方(如数据库)。如果你对这个含糊的定义有些困惑的话,请不要太担心,我们将在下章详细讨论引用的细节,重要的是要紧记Velocity引用从本质上来讲是作为模板中动态内容的占位符。如果你想把这个俱乐部应用程序转换成Velocity模板,只需要把那些空白部分替换成适当的Velocity引用就行。如何制定一个适当的Velocity引用定义?首先定义要符合Velocity引用语法,其次是设计者和编程人员要对模板引用的名称进行约定。一种可能的模式实现详见Listing 6.1。

CLUB VELOCITY APPLICATION

First Name: $firstName

Last Name: $lastName

Address: $streetAddress

City: $city State: $state Zip: $zip

Phone Number: $phoneNumber

Email Address: $emailAddress

Occupation: $occupation

Other Interests: $otherInterests

Is this a new membership request or a renewal? $appType

How long have you been using Velocity? $useTime

Do you use Velocity for work or play? $useType

Do you want to receive our newsletter? $wantNewsletter

Listing 6.1The club application form after conversion to a Velocity template.

正如你所看见的一样,Velocity模板从本质上讲,和应用程序原来的窗体是相同的,除了空白地方被Velocity引用替换外。下面我们先假定引用的值分别如下:

$firstName => "John"

$lastName => "Doe"

$streetAddress => "123 Jane Ave. "

$city => "Azusa"

$state => "CA"

$zip => "91702"

$phoneNumber => "626-555-1234"

$emailAddress => "john@nodom.com"

$occupation => "Web Developer"

$otherInterests => "Hiking,Biking"

$appTyp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值