Velocity学习笔记2——Velocity能够做什么

来源:互联网 发布:cisco acs是基于linux 编辑:程序博客网 时间:2024/05/01 14:35
            一个泥土商店的例子:
            假设你是一个页面设计人员,为一个专门卖泥土的网上商店工作。我们把这个商店取名叫“网上泥土店”。这个店的业务是兴旺的。不同的顾客会购买不同的种类和数量的泥土。他们使用用户名和密码登录你的网站,这允许他们浏览他们自己的订单或者购买更多的泥土。 现在,有Terracotta土出售,而且这种泥土很受欢迎。而你的少数用户则会有规律的购买Bright Red泥土。这种泥土虽然不象Terracotta泥土那样受欢迎,而且通常位于你的web页面的边缘,但是也有出售。每个用户的信息都被记录在数据库中。 有一天,事情来了。为什么不用Velocity来达到对每个用户最感兴趣的泥土做一个特殊的处理的目的呢。
            作为一个网上泥土店的网站设计人员,你希望用户登录你的网站之后能够看到一些客户化的信息。Velocity使得对你的web页面根据登录的用户做客户化的处理很容易。
            和软件工程师沟通之后,达成的协议:
1.当前登录用户的信息会放在一个叫做$customer的引用中。
2.引用$mudsOnSpecial包含所有当作在销售的泥土的信息。
3.引用$flogger会包含一个可以获取帮助信息的方法。
            现在,是我们实现任务的时候了。记住,我们不用担心这软件工程师如何从数据库中抽取数据。我们只需要关注这3个引用。现在,让我们进行自己的工作。
            你可以在web页面中包含以下的VTL语句(VTL:Velocity Template Language, Velocity模版语言;这个会在以后做详细的介绍)。
<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
   #if ( $customer.hasPurchased($mud) )
      <tr>
        <td>
          $flogger.getPromo( $mud )
        </td>
      </tr>
   #end
#end
</table>
      上面用到的VTL会在后面做深入的介绍,现在我们需要关心的是这一段代码在web页面上有什么影响。
      当一个对Bright Red泥土感兴趣的顾客登录的时候,并且Bright Red泥土还在销售,那么Bright Red泥土的信息就会显示出来。当另外一个长期定购Terracotta泥土的顾客登录的时候,Terracotta泥土的信息就会显示出来(可能是一个打折的信息)。
      Velocity的非常灵活的,唯一的限制是你的创造力。(王婆卖瓜,自卖自夸哈)
原创粉丝点击