Velocity模板引擎的三种基本逻辑结构

在程序诞生之初有一句话也随之诞生三种基本逻辑结构可以组成任何程序”。这里的三种基本逻辑结构就是:顺序结构条件结构循环结构

 

确实至今任何复杂程序也没能跳出这三种基本逻辑结构。由于工作原因需要接触Velocity模板引擎。这篇文章讲的就是如何运用Velocity中的三种基本逻辑结构。

首先介绍一下Velocity,我就到网上复制粘贴一下了,毕竟网上介绍的已经很好了,省的我自己来又使你感到迷茫。

 

“Velocity是一个基于java的模板引擎。它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。

Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 ”

以上是来自Velocity官网(http://velocity.apache.org/)的介绍。

 

·顺序结构

顺序结构是最简单易懂,也是任何语言中用的最多的结构。也就是自上而下一行一行的运行,Velocity也不例外。不过Velocity有一个特别的概念(宏)。说到宏我首先联想到的是office中的宏,在Velocity中宏和office中的很类似。

#macro指令用于定义Velocity的宏,举个简单的例子:

#macro ( a )

      <h1>定义一个宏</h1>

      #end

Velocity中使用包含代码块的指令都需要在结尾加上#end指令,以便让Velocity知道代码从何开始从何结束。上面就定义好了一个宏,调用也非常简单:

#a()

这段代码就调用了宏,在括号里的第一个值表示该宏的名字。同样的我们也可以传入参数如下:

#set ( $color = blue)

#macro ( a  $color)

      <h1>颜色是${color}</h1>

      #end

调用该宏得到的结果是:“颜色是blue”。

 

·条件结构

Velocity的条件结构也很容易理解,因为它和其它语言没什么特别区别。请看下面例子:

#if( $foo < 10 )

        <strong>该数字小于10</strong>

    #elseif( $foo == 10 )

        <strong>该数字等于10</strong>

     #else

       <strong>该数字大于10</strong>

    #end

上面这段程序很容易理解,值得注意的是:Velocity使用‘==’来比较两个值,而且velocity要求等号两边的值类型相同。而且Velocity的数字是作为Integer来比较的。”就拿上述代码为例,如果${foo}定义的不是一个Integer值,那么它会直接返回false

Velocity也同样的拥有与(&&)、或(||)、非(!)逻辑运算符。注意:“&&||是有短路效应的,一旦前一个就可以判断真假,后面的条件不再进行判断。

$!foo!$foo的区别也要格外注意:“假如页面上有$foo, 如果对象foo存在,那么显示foo的值,如果对象foo不存在,那么页面将会显示$foo这四个字符。$!foo就是在foo不存在的情况下,强制把$foo显示为空字符串。!$foo是对$foo取反。

 

·循环结构

与别的语言不同,Velocity中只有#foreach这一种循环指令。

#foreach( $elem in $allElems)

    $elem</br>

    #end

每次循环都从$allElems中取出一个值赋给$elem变量。 $allElems可以是一个VectorSet或者Array。分配给$elem的值是一个java对象,并且可以通过变量被引用。

Velocity中,有一个变量$velocityCount用作循环计数,初始值是1。这个变量的名字和初始值是在velocity.properties文件里配置的。下面是结合$velocityCount变量的一个循环例子:

  #foreach ( $customer in $customerList )

            <h1>当前是第$velocityCount次循环</h1>

    <br/>

    <h1>当前循环的值是:$customer</h1>

       #end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值