《VTL语法参考指南中文版》.doc_第1页
《VTL语法参考指南中文版》.doc_第2页
《VTL语法参考指南中文版》.doc_第3页
《VTL语法参考指南中文版》.doc_第4页
《VTL语法参考指南中文版》.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

领先的java与.Net技术推广者VTL语法参考指南中文版源文见 *声明: 转载请保留此页声明译者: javaFound www.NMail: *目 录1.关于本指南32.语法参考31.变量定义32.访问属性3命令调用33.动作指令31.#set 建立变量对值的引用32.#if/#elseif/#else-条件判断43.#foreach-使用循环通过列表迭代对象54.#include 在模板中引入本地文件,不用Velocity解析这个文件55.#parse 在模板引用处使用Velocity解析另一个模板输出66.#stop 中断模板解析67.#macro 让用户可以定义宏操作(Velocimacro (VM):一组实现特定功能的VTL)64.Comments 注解71.单行注解72.多行注解75.Feedback71.关于本指南本文为Velocity的模板语言参考书,如需了解更多信息,请参见 Velocity User Guide. 2.语法参考1.变量定义变量名的有效字符集: $ ! a.z, A.Z a.z, A.Z, 0.9, -, _ Examples: 一般方式: $mud-Slinger_9 静态(输出原始字面): $!mud-Slinger_9 正规格式: $mud-Slinger_92.访问属性格式规则: $ 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.Total3.命令调用格式规则: $ 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 NameSymbolAlternative SymbolExampleEquals Number=eq#if( $foo = 42 )Equals String=eq#if( $foo = bar )Object Equivalence=eq#if( $foo = $bar )Not Equals!=ne#if( $foo != $bar )Greater Thangt#if( $foo 42 )Less Thanlt#if( $foo =ge#if( $foo = 42 )Less Than or Equal To=le#if( $foo = 42 )Boolean NOT!not#if( !$foo )注意:1. “= “操作可以用来比较数字,字符串,或同一个类的不同对象或不同类型的对象. 当是不同类的对象时,会调用它们的toString()命令结果来做比较看是否相等. 2. 也可以如下用法,但注意else处,用括起. #if( $foo = $bar)its true!#elseits not!#end3.#foreach-使用循环通过列表迭代对象Format: # foreach ( $ref in arg ) 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 )如下可以取得循环次数的当前值: #foreach( $customer in $customerList ) $velocityCount$customer.Name#end默认的循环次数的引用变量名为 $velocityCount. 可以在配置文件perties中做如下修改成你想要的: # Default name of the loop counter# variable = 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 = -14.#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 )通过设置配置中的解析层次深度的最大值perties中项 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)可以写在以下两个地方: 1. (模板库)Template library: 可以配置用户定义的库以便全站使用2. Inline: 放入到一般的模板文件中, 仅当配置参数 velocimacro.permissions.allowInline=true 时生效.4.Comments

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论