`
xwood
  • 浏览: 103009 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Velocity 《VTL语法参考指南》中文版[转]

    博客分类:
  • Web
 
阅读更多
1.语法参考
1.变量定义
变量名的有效字符集:
$ [ ! ][ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ][ } ]
Examples:
一般方式: $mud-Slinger_9
静态(输出原始字面): $!mud-Slinger_9
正规格式: ${mud-Slinger_9}
2.访问属性
格式规则:
$ [ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]* .[a..z, A..Z ][ a..z, A-Z, 0..9, -, _ ]* [ } ]
Examples:
一般格式: $customer.Address :调用customer对象的getAddress()命令.
正规格式: ${purchase.Total}
2.命令调用
格式规则:
$ [ { ][ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]* .[ a..z, A..Z ][ a..z, A..Z, 0..9, -, _ ]*( [ optional parameter list... ] ) [ } ]
Examples:
一般写码: $customer.getAddress()
正规写法: ${purchase.getTotal()}
传入调用参数: $page.setTitle( "My Home Page" )
VTL的属性调用可以理解为命令调用的简写方式,一般会调用对象的get/set命令.
3.动作指令
1.#set – 建立变量对值的引用
格式规则:
# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )
Examples:
变量引用: #set( $monkey = $bill )
引用原始字符串: #set( $monkey.Friend = 'monica' )
属性引用: #set( $monkey.Blame = $whitehouse.Leak )
命令引用: #set( $monkey.Plan = $spindoctor.weave($web) )
直接引用数字: #set( $monkey.Number = 123 )
列表赋值引用: #set( $monkey.Numbers = [1..3] )
对象数组: #set( $monkey.Say = ["Not", $my, "fault"] )
右值也可以做为一个表达式出现,如下加,减,cheng,除和取模:
Addition: #set( $value = $foo + 1 )
Subtraction: #set( $value = $bar - 1 )
Multiplication: #set( $value = $foo * $bar )
Division: #set( $value = $foo / $bar )
Remainder: #set( $value = $foo % $bar )
2.#if/#elseif/#else-条件判断
格式规则:
# [ { ] if [ } ] ( [条件表达式] ) [输出内容] [ # [ { ] elseif [ } ] ( [condition] ) [output] ]* [ # [ { ] else [ } ] [output] ] # [ { ] end [ } ]
Usage:
condition – 如果是boolean型,根据true或false决定,否则非null时认为是true.
output –可以包含VTL的输出内容.
Examples (showing different operators):
Operator Name
Symbol
Alternative Symbol
Example
Equals Number
==
eq
#if( $foo == 42 )
Equals String
==
eq
#if( $foo == "bar" )
Object Equivalence
==
eq
#if( $foo == $bar )
Not Equals
!=
ne
#if( $foo != $bar )
Greater Than
>
gt
#if( $foo > 42 )
Less Than
<
lt
#if( $foo < 42 )
Greater Than or Equal To
>=
ge
#if( $foo >= 42 )
Less Than or Equal To
<=
le
#if( $foo <= 42 )
Boolean NOT
!
not
#if( !$foo )
注意:
“== “操作可以用来比较数字,字符串,或同一个类的不同对象或不同类型的对象. 当是不同类的对象时,会调用它们的toString()命令结果来做比较看是否相等.
也可以如下用法,但注意else处,用{}括起.
#if( $foo == $bar)it's true!#{else}it's not!#end</li>
3.#foreach---使用循环通过列表迭代对象
Format:
# [ { ] foreach [ } ] ($refinarg)statement# [ { ] end [ } ]
Usage:
$ref – 引用的要迭代的对象.
arg – 可能是:一个列表引用 (i.e. object array, collection, or map), an array list, 或其它列表.
statement – 当velocity发现下一个有效对像在列表中,输出可以是一个合法的VTL.
示例 #foreach()用法,:
引用: #foreach ( $item in $items )
数组列表: #foreach ( $item in ["Not", $my, "fault"] )
根据设定的界限: #foreach ( $item in [1..3] )
如下可以取得循环次数的当前值:
<table>
#foreach( $customer in $customerList )
    <tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
</table>
默认的循环次数的引用变量名为 $velocityCount. 可以在配置文件velocity.properties中做如下修改成你想要的:
# Default name of the loop counter
# variable reference.
directive.foreach.counter.name = velocityCount

# Default starting value of the loop
# counter variable reference.
directive.foreach.counter.initial.value = 1
注意,可以对所有可循环的次数加一个最大值来控制,默认的是-1,表示元限制:
# The maximum allowed number of loops.
directive.foreach.maxloops = -1
4.#include – 在模板中引入本地文件,不用Velocity解析这个文件
Format:
# [ { ] include [ } ] ( arg[ arg2 ... argn] )
arg – 目录TEMPLATE_ROOT下面的有效文件名.
Examples:
直接写文件名: #include( "disclaimer.txt,"opinion.txt" ):如有多个文件时用逗号分开
使用变量引用的文件名: #include( $foo,$bar )
5.#parse – 在模板引用处使用Velocity解析另一个模板输出
Format:
# [ { ] parse [ } ] ( arg )
arg -目录TEMPLATE_ROOT下面的有效文件名.
Examples:
直接写文件名: #parse( "lecorbusier.vm" )
使用变量引用的文件名: #parse( $foo )
通过设置配置中的解析层次深度的最大值velocity.properties中项 parse_directive.maxdepth in可以防止死循环. (The default parse depth is 10.)
6.#stop – 中断模板解析
Format:
# [ { ] stop [ } ]
Usage:
在当前模板指令处停止解析,为方便调试用.
7.#macro – 让用户可以定义宏操作(Velocimacro (VM):一组实现特定功能的VTL)
Format:
# [ { ] macro [ } ] ( vmname $arg1 [ $arg2 $arg3 ... $argn ] ) [ VM VTL code... ] # [ { ] #end [ } ]
vmname – 宏名字 VM (#vmname)
$arg1 $arg2 [ ... ] – 要传给宏的参数VM..
[ VM VTL code... ] –宏代码,有效的VTL.
一次定义好了,就可以在其它模板的任何地方使用宏指令来应用.
#vmname( $arg1 $arg2 )
宏(VM)可以写在以下两个地方:
(模板库)Template library: 可以配置用户定义的库以便全站使用
Inline: 放入到一般的模板文件中, 仅当配置参数 velocimacro.permissions.allowInline=true 时生效.
8.Comments 注解
Comments不是运行时所必须的,但你一定要写.
1.单行注解
Example:
## This is a comment.
2.多行注解
Example:
#*
This is a multiline comment.
This is the second line
*#
9.Feedback
分享到:
评论

相关推荐

    VTL语法参考指南中文版

    ### VTL语法参考指南中文版知识点详述 #### 一、引言 VTL(Velocity Template Language)是一种基于Apache Velocity框架的模板语言,用于将数据模型与用户界面分离,简化了动态网页的生成过程。VTL语法简洁且功能...

    velocity文档(Velocity1.4java开发指南中文版,Velocity1.4模板使用指南中文版中文版)

    提供的 "Velocity1.4java开发指南中文版.pdf" 和 "Velocity1.4柾斅巊梡巜撿拞暥斉拞暥斉.pdf" 应该是 Velocity 1.4 的中文版开发文档和使用教程。通过阅读这两份文档,你可以深入学习如何配置 Velocity,如何编写...

    velocity经典4pdf中文教程

    这个压缩包包含了四本关于Velocity的经典中文教程,分别是《Velocity模板使用指南中文版》、《VTL语法参考指南中文版》、《Velocity Web应用开发指南中文版》和《velocity Java开发指南中文版》。以下是对这些教程...

    《Velocity Web应用开发指南中文版》.doc

    - **《VTL语法参考指南中文版》**:提供关于Velocity模板语言(VTL)的详尽语法说明和示例。 - **《DB4O中文系列之起步篇》**:虽然与Velocity关系不大,但提供了关于DB4O数据库的入门知识。 以上内容涵盖了从...

    velocity模板使用指南中文版

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

    Velocity 帮助文档大全(打包)

    本人搜集的Velocity相关的所有帮助文档,包括: 《Velocity Web应用开发指南中文版.pdf》、 《Velocity+Java开发指南中文版.pdf》、 《Velocity模板使用指南中文版.pdf》、 《VTL语法参考指南中文版.pdf》

    《Velocity java开发指南》中文版

    《Velocity Java开发指南》中文版是一本专注于介绍Velocity这一开源模板引擎的书籍。Velocity是一个用于生成静态或动态内容的模板解决方案,尤其适用于Java开发者。它能够帮助开发者将静态页面元素与动态数据相结合...

    velocity+Java开发指南中文版.zip

    1. **简洁性**:Velocity的VTL语法简单,易于学习和使用,使得开发者可以快速上手。 2. **分离关注点**:Velocity有助于实现MVC模式,使开发者能专注于业务逻辑,设计师专注于页面设计。 3. **高性能**:由于...

    Velocity指南

    `《VTL语法参考指南中文版》` 是一份详尽的 VTL 语法规则手册,涵盖了所有可用的指令、方法和特殊字符。通过深入学习这份文档,你可以更熟练地编写复杂的模板逻辑。 综上所述,Velocity 提供了一个强大且灵活的模板...

    velocity Java开发指南中文版

    《Velocity Java 开发指南中文版》是一本专为Java开发者设计的指南,旨在帮助读者深入理解并熟练运用Apache Velocity模板引擎。Velocity是一个开源的Java库,它允许开发者将业务逻辑与展示层分离,通过模板语言...

    Velocity 资料汇总

    VTL语法参考指南中文版 DB4O系统应用之起步篇 velocity用户手册 velocity语法 velocity初探 velocity1.5帮助说明 velocity Tool1.4帮助说明 Veloctiy例子 Struts结合Velocity开发web应用 Struts与Velocity的简单集成...

    velocity技术资料

    `Velocity_《VTL语法参考指南》中文版.doc` 提供了详细的学习材料,`velocity-1.6.jar` 是实际开发中必不可少的库,而`velocity.ppt` 则可能是进一步了解和学习Velocity的辅助资料。对于想要深入了解和使用Velocity...

    Velocity模板使用指南中文版

    ### Velocity模板使用指南中文版知识点总结 #### 一、Velocity简介 Velocity是一种基于Java的模板引擎,用于在Web页面中引用Java代码中定义的数据对象和命令。它支持将业务逻辑和展示逻辑分离,有助于实现MVC...

    velocity文档

    ** VTL语法参考指南中文版 ** VTL(Velocity Template Language)是Velocity的核心,其语法简洁且易于理解。VTL中的主要元素包括变量引用(`$variable`)、指令(如`#set`, `#if`, `#foreach`等)以及宏。变量引用...

Global site tag (gtag.js) - Google Analytics