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

上传人:无*** 文档编号:155538192 上传时间:2022-09-23 格式:DOC 页数:8 大小:93.50KB
收藏 版权申诉 举报 下载
Velocity《VTL语法参考指南》中文版_第1页
第1页 / 共8页
Velocity《VTL语法参考指南》中文版_第2页
第2页 / 共8页
Velocity《VTL语法参考指南》中文版_第3页
第3页 / 共8页
资源描述:

《Velocity《VTL语法参考指南》中文版》由会员分享,可在线阅读,更多相关《Velocity《VTL语法参考指南》中文版(8页珍藏版)》请在装配图网上搜索。

1、VTL语法参考指南中文版源文见 http:/velocity.apache.org 声明: 转载请保留此页声明*此文档为蓝杰实训学员拓展实训之用.蓝杰实训不对译文中某些说法可能会对您的系统或开发造成损害负责.如对您有所帮助,我们不胜荣幸!*本文属NetJ中的Velocity中文系列,本系包含如下文章:Velocity Java开发指南中文版(Developers Guide) Velocity模板使用指南中文版(Users Guide) Velocity Web应用开发指南中文版(Web Application Guide)VTL语法参考指南中文版(VTL Reference)DB4O中文系列

2、之起步篇. . .更多资料请访问 下载.*译者: javaFoundMail: javafoundNetJ*Velocity(www.velocity.apache.org)通常用来替换JSP技术. 使用它生成页面有以下优势: 简洁一般的web美工不需要懂程序语言的就可以设计动态业面. Web系统容易维护 MVC推荐的做法是在页面中不要存在其它的脚本语言出现. 容易访问数据模型的命令和属性页面设计者通过引用简单的就可访问context中的java数据对象. 一致性 Velocity可用做其它的文本模板生成任务,如如发送email.本系列全面讲解了将Velocity应用从入门到精通其技术特点应用

3、的每个方面,助你成为MVC构架的高手.目 录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.Com

4、ments 注解. 71.单行注解. 72.多行注解. 75.Feedback. 71.关于本指南本文为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_9 2.访问属性格式规则: $ a.z, A.Z a.z, A.Z, 0.9, -, _ * .a.z, A.Z a.z, A

5、-Z, 0.9, -, _ * Examples: 一般格式: $customer.Address:调用customer对象的getAddress()命令. 正规格式: $purchase.Total 3.命令调用格式规则: $ 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

6、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(

7、 $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 ) Re

8、mainder: #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 SymbolEx

9、ampleEquals 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. “= “操作可以用来比较数字,字符

10、串,或同一个类的不同对象或不同类型的对象. 当是不同类的对象时,会调用它们的toString()命令结果来做比较看是否相等. 2. 也可以如下用法,但注意else处,用括起. #if( $foo = $bar)its true!#elseits not!#end3.#foreach-使用循环通过列表迭代对象Format: # foreach ($refinarg)statement# end Usage: $ref 引用的要迭代的对象. arg 可能是:一个列表引用 (i.e. object array, collection, or map), an array list, 或其它列表. s

11、tatement 当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. 可以在配置

12、文件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 allow

13、ed 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:

14、 # 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 让用户可以定义宏

15、操作(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 注解Comments不是运行时所必须的,但你一定要写. 1.单行注解Example: # This is a comment.2.多行注解Example: #*This is a multiline comment.This is the second line*# 5.Feedback如果您有什么问题或建议,请联系 Velocity developers list. Thanks!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!