`

Velocity手册(4)【转】

    博客分类:
  • java
阅读更多

The result of the first query is $result

#set ( $resut = $query.criteria(“address”) )

The result of the second query is $result

如果$query.criteria(“name”)返回一个“bill”,而$query.criteria(“address”)返回的是null,则显示的结果如下:

The result of the first query is bill

The result of the first query is bill

看看下面的例子:

#set( $criteria = ["name", "address"] )

#foreach( $criterion in $criteria )

#set( $result = $query.criteria($criterion) )

#if( $result )

Query was successful

#end

#end

在上面的例子中,程序将不能智能的根据$result的值决定查询是否成功 。在$result被#set后(added to the context),它不能被设置回null(removed from the context)。打印的结果将显示两次查询结果都成功了,但是实际上有一个查询是失败的。

为了解决以上问题我们可以通过预先定义的方式:

#set( $criteria = [“name”, “address”] )

#foreach( $criterion in $criteria )

#set( $result = false )

#set( $result = $query.criteria( $criterion ) )

#if( $result )

Query was successful

#end

#end

String Literals

当你使用#set directive,String literal封闭在一对双引号内。

#set ( $Director yRoot = “www” )

#set ( $templateName = “index.vm” )

#set ( $template = “$directoryRoot/$tempateName” )

$template

上面这段代码的输出结果为:www/index.vm

但是,当string literal被封装在单引号内时,它将不被解析:

#set ( $foo = “bar” )

$foo

#set ( $blargh = ‘$foo’ )

结果:

bar

$foo

上面这个特性可以通过 改velocity.properties文件的stringliterals.interpolate = false的值来改变上面的特性是否有效。

条件语句

if/elseif/else

当一个web页面被生成时使用Velocity的#if directrive,如果条件成立的话可以在页面内嵌入文字。例如:

#if ( $foo )

<strong>Velocity!</strong>

#end

上例中的条件语句将在以下两种条件下成立:

l$foo是一个boolean型的变量,且它的值为true

l$foo变量的值不为null

这里需要注意一点:Velocity context仅仅能够包含对象,所以当我们说“boolean”时实际上代表的时一个Boolean对象。即便某个方法返回的是一个boolean值,Velocity也会利用内省机制将它转换为一个Boolean的相同值。

如果条件成立,那么#if和#end之间的内容将被显示。

#elseif和#else元素可以同#if一同使用。例如:

#if( $foo < 10 )

<strong> Go North </strong>

#elseif( $foo == 10 )

<strong> Go East </strong>

#elseif( $foo == 6 )

<strong> Go South </strong>

#else

<strong> Go West </strong>

#end

注意这里的Velocity的数字是作为Integer来比较的——其他类型的对象将使得条件为false,但是与java不同它使用“==”来比较两个值,而且velocity要求等号两边的值类型相同。

关系、逻辑运算符

Velocity中使用等号操作符判断两个变量的关系。例如:

#set ( $foo = “deoxyribonucleic acid” )

#set ( $bar = “ribonucleic acid” )

#if ( $foo == $foo )

In this case it’s clear they aren’t equivalent.So…

#else

They are not equivalent and this will be the output.

#end

Velocity有AND、OR和NOT逻辑运算符。下面是一些例子:

## logical AND

#if( $foo && $bar )

<strong> This AND that </strong>

#end

## logical OR

#if ( $foo $bar )

<strong>This OR That </strong>

#end

##logical NOT

#if ( !$foo )

<strong> NOT that </strong>

#end

循环

Foreach循环

例子:

<ul>

#foreach ( $product in $allProducts )

<li> $product </li>

#end

</ul>

每次循环$allProducts中的一个值都会赋给$product变量。

$allProducts可以是一个Vector、Hashtable或者Array。分配 给$product的值是一个java对象,并且可以通过变量被引用。例如:如果$product是一个java的Product类,并且这个产品的名字 可以通过调用他的getName()方法得到。

现在我们假设$allProducts是一个Hashtable,如果你希望得到它的key应该像下面这样:

<ul>

#foreach ( $key in $allProducts.keySet() )

<li>Key: $key -> Value: $allProducts.get($key) </li>

分享到:
评论

相关推荐

    Velocity用户手册(中文版)

    这份中文版的Velocity用户手册将深入解析其语法和用法。 ** Velocity语法基础 ** 1. **变量引用**:在Velocity中,变量以$符号开头,例如 `$name`,表示要引用的变量。 2. **括号内引用**:如果变量名包含特殊...

    Velocity用户手册 中文版

    这个用户手册中文版详细介绍了Velocity的使用方法和语法特性。 ** Velocity 的基本概念 ** 1. **模板(Template)**:模板是Velocity的核心,它是HTML或XML等静态页面中嵌入了Velocity指令的文件,用于生成最终的...

    velocity手册_HTML版

    velocity手册_HTML版 内容简单 初学者的好东西

    Velocity_中文手册

    为了更好地使用Velocity,Velocity用户手册提供了详细的例子和说明。手册中包含了对VTL的详细介绍,比如变量的使用、控制结构的编写、指令的应用等,以帮助页面设计者和内容提供者快速熟悉和掌握Velocity的使用。...

    Velocity用户手册_中文.docVelocity用户手册_中文.doc

    【Velocity】 Velocity 是一个基于 Java 的模板引擎,它允许开发者使用模板语言(Template Language)来引用由 Java 代码定义的对象。其核心理念是将Java代码与HTML页面内容分离,促进MVC(Model-View-Controller)...

    Velocity用户手册.doc

    4. **Include** 指令用于插入其他模板,增强模板复用性。 5. **Parse** 指令用于解析并执行嵌入的 VTL 代码块。 6. **Stop** 指令用于终止当前模板的执行。 7. **Velocimacros** 是可重用的宏,可以简化模板编写,...

    Velocity手册-中文版

    【Velocity 手册-中文版】是一份详细指导文档,主要面向页面设计者和内容提供者,介绍如何使用 Velocity 模板语言(VTL)来创建动态内容并将其嵌入到网页中。Velocity 是一个基于 Java 的模版引擎,它的核心功能是将...

    velocity中文手册

    velocity中文手册 Velocity 是一个基于java 的模板引擎(template engine)。它允许任何人仅仅简单的使 用模板语言(template language)来引用由java 代码定义的对象。

    velocity手册

    ### Velocity手册核心知识点详解 #### 1. 什么是Velocity? Velocity是一种基于Java的模板引擎,它的主要作用是将Web页面设计者与Java程序员的工作区分开来,使得两者能够平行工作而不互相干扰。通过这种方式,Web...

    velocity 手册

    【Velocity手册】深入解析 Velocity是一个强大的基于Java的模板引擎,其主要目的是将内容呈现与业务逻辑相分离,实现Model-View-Controller(MVC)架构。它使用一种称为Velocity Template Language (VTL) 的简单...

    Velocity用户手册(中文)

    4. **可扩展性**: Velocity支持自定义指令和宏,可以轻松地扩展功能以满足特定需求。 5. **社区支持**: 作为Apache项目,Velocity有着丰富的文档和活跃的社区支持,遇到问题时可以得到及时的帮助。 **Velocity核心...

    Velocity中文手册

    Velocity是一个基于Java的模板引擎,它主要被用来分离Java代码和Web页面。通过预定义的Java方法,Web设计者可以在页面设计过程中嵌入这些Java代码。与传统的MVC模式相结合,Web设计者和程序员可以并行工作,提高工作...

    velocity 用户手册 参考文档 详细讲解

    Velocity 是一个基于 Java 的模板引擎,它主要用于将静态页面内容与动态数据相结合,实现模板语言与 Java 代码的分离。Velocity 的核心理念是让界面设计人员专注于页面布局和样式,而将业务逻辑处理交给 Java 开发...

    velocity用户手册velocity用户手册velocity用户手册

    ### Velocity用户手册精要 **一、Velocity简介与能力范畴** Velocity是一款强大的模板引擎,其功能远远超越了web站点开发的局限。它不仅能够用于创建动态网页,还具备生成SQL、PostScript、XML等各类文档的能力,...

    Velocity用户手册中文版

    以上就是从给定文件内容中提取的关于 Velocity 用户手册的知识点。这些知识点覆盖了 Velocity 的基本概念、使用方式以及模板语言 VTL 的核心内容,为理解 Velocity 的功能和应用提供了详细的指导。

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

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

    Velocity用户手册

    4. **安全性强**:由于Velocity不直接执行Java代码,而是通过Velocity模板语言(VTL),降低了代码注入的风险。 **Velocity模板语言(VTL)** VTL是Velocity的核心,它提供了一系列指令和引用,用于在模板中控制...

Global site tag (gtag.js) - Google Analytics