Velocity中文指南
Velocit手册-中文版
Velocity中文手册1关于Velocity 用户指南旨在帮助页面设计者和内容提供者了解Velocity 和其简单而又强大的脚本语言(Velocity Template Language (VTL))。
本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples 都同演示用于所有的页面和模版。
感谢选择Velocity!2什么是Velocity?Velocity 是一个基于Java的模版引擎。
它允许web 页面设计者引用JAVA代码预定义的方法。
Web 设计者可以根据MVC模式和JAVA程序员并行工作,这意味着Web设计者可以单独专注于设计良好的站点,而程序员则可单独专注于编写底层代码。
Velocity 将Java 代码从web页面中分离出来,使站点在长时间运行后仍然具有很好的可维护性,并提供了一个除JSP和PHP之外的可行的被选方案。
Velocity可用来从模板产生web 页面,SQL, PostScript以及其他输出。
他也可用于一个独立的程序以产生源代码和报告,或者作为其它系统的一个集成组件。
这个项目完成后,Velocity将为Turbine web 应用程序框架提供模板服务。
Velocity+Turbine 方案提供的模板服务将允许web 应用按真正的mvc模式进行开发。
3 Velocity 可以做什么?Mud Store 示例假设你是一个专门销售泥浆(MUD)的在线商店的页面设计者。
我们称他为"The Online Mud Store"。
生意很好。
客户订购各种各样的类型和数量的泥浆。
他们使用他们的用户名和密码登陆到商店中来,就可以浏览他们的订货和购买其他东西。
现在,赤土陶泥正在促销,这是一种很常用的泥巴。
一少部分顾客很有规律的购买一种亮红土Bright Red Mud,这也是促销产品,但是不太常用,因此被移到页面的边缘。
所有顾客的信息都在数据库中被跟踪,因此有一天问题出现了:为什么不使用Velocity来定位目标客户,这些客户对某种类型的产品特别感兴趣?Velocity 使针对访问者个性的WEB页面客户化(个性化)非常容易。
Velocity快速指南
在以上示例中我们引用变量时,使用“$”符紧接变量名,如$foo,除此之外还有一种正式的引 用方法,如下所示: ${foo} ${customer.Address} ${customer.getAddress()} 对于一般的使用,之前的章节所讲述的方法是完全够用的,但有些特殊情况我们必须使用本节 所讲的正式引用法。例如,我们引用一个变量$vice,对于如下语句: Jack is a $vicemaniac. $vice 不能够正常解析,因为“vice”和文本“maniac”紧挨着,造成变量名被解析成$vicemaniac。 正确的写法,是使用正式引用法: Jack is a ${vice}maniac. 这样就可以区分特殊情况下的变量名和普通文本。
例如,当我们写”Give me $9999 please!”这句话时不会出现什么问题,因为 VTL 标识符总是以字母 开头,所以$9999 不会被误解为变量引用,但当普通文本和现有变量引用存在冲突的时候,我 们可以使用右斜杠“\”转义。例如,
#set( $email = “foo” ) $email
变量
VTL 的命名规则很简单,第一个字符必须是字母(a..z 或 A..Z),其他的部分限于以下类型:
字母(a..z, A..Z)
数字(0..9)
减号(“-“)
下划线(“_”)
以下是标识符合法的变量:
$foo
$bosnMa
$bosn-ma
$bosn_ma
$bosnMa1
变量既可以通过 set 指令赋值(FE),也可以通过 Java 代码赋值(RD)。例如,如果一个 Java 变量$foo 的值为”abc”,当模板被请求时,所有页面上的$foo 都将被赋值”abc”。
Velocity用户开发手册
Velocity用户手册--中文版1 关于Velocity用户指南旨在帮助页面设计者和内容提供者了解Velocity和其简单而又强大的脚本语言(Velocity Template Language (VTL))。
本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples都同演示用于所有的页面和模版。
感谢选择Velocity!2 Velocity是什么?Velocity是一个基于java的模板引擎(template engine)。
它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity也可以为Turbine web开发架构提供模板服务(template service)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
3 Velocity能为我们作什么?3.1 The Mud Store Example假设你是一家专门出售泥浆(Mud)的在线商店的页面设计人员,让我们暂且称它为“在线MUD商店”。
你们的业务很旺,客户下了各种类型和数量的mud 订单。
他们都是通过输入用户名和密码后才登陆到你的网站,登陆后就允许他们查看订单并购买更多的mud。
现在,一种非常流行的mud正在打折销售。
另外有一些客户规律性的购买另外一种也在打折但是不是很流行的Bright Red Mud,由于购买的人并不多所以它被安置在页面的边缘。
所有用户的信息都是被跟踪并存放于数据库中的,所以某天有一个问题可能会冒出来:为什么不使用velocity 来使用户更好的浏览他们感兴趣的商品呢?Velocity使得web页面的客户化工作非常容易。
Velocity介绍.
}
3.1Velocity原理举例说明
Velocity 文件(hello.vm) <html> <body> <table> <tr><td> hello $name; </td></tr> </table> </html> 这个例子的输出效果为: Hello Velocity
4. VTL介绍
VTL提供一种简单、容易和干静的方法将 动态内容合并到Web页面。VTL使用引 用(references)将动态内容插入到Web页 面中。变量是一种引用,可以指向Java 代码中的定义内容,或者由Web页面中 的VTL语句来获得值。 例如:#set( $a = "Velocity" ) VTL语句以#开头,并包含指令(set)。 变量以$开头,用引号引起 VTL语法包括: 1,注释 2,引用(References) 3,指令(Directives)
4.2VTL---引用(References)
VTL有3种类型的引用:变量、属性和方法。 (1)变量 变量的格式:$VTL标识符 VTL标识符以字母开始,由字母、数字、 横划线(-)或下划线(_)组成。 例如下面的例子: #set( $foo = "gibbous" ) $moon = $foo 输出结果是:$moon = gibbous
4.3.1VTL---#set
(1)#set RHS可以是简单的算术表达式 如果RHS的结果为null,是不会赋值给LHS的 String文字可以使用双引号或单引号括起。两 者的主要区别是双引号中的引用会替换成相应 的值,而单引号中的引用原样输出 例如: #set( $value = $foo + 1 ) ## Addition #set( $directoryRoot = "www" ) #set( $templateName = "index.vm" ) # s e t ( $ t e m p l a t e = $directoryRoot/$templateName" ) $template 输出结果是:www/index.vm
velocity2.0 入门 变量 方法
1. 什么是velocity2.0?velocity2.0是一个模板引擎,用于在Web开发中,特别是在Java Web开发中,用于生成HTML、XML等静态文件。
velocity2.0可以将模板文件中的变量替换为具体的数值,也可以执行一些简单的逻辑操作,比如条件判断、循环等。
它的主要作用就是将模板和数据整合在一起,生成最终的文件输出。
2. velocity2.0的入门指南想要学习和使用velocity2.0,首先需要了解它的基本语法和用法。
下面是velocity2.0入门的一些基本概念和内容。
3. 变量在velocity2.0中,变量用来表示一些数值、字符串或者对象,在模板中可以通过变量名来引用这些值。
变量的命名规则和作用域和Java中的情况很类似,这些都是需要在学习velocity2.0时需要注意的地方。
4. 变量定义与赋值在velocity2.0模板中,可以通过#set指令来定义和赋值一个变量,比如:```#set($name = "velocity2.0")```这样就定义了一个名为name的变量,并赋值为"velocity2.0"。
5. 变量的引用定义了变量之后,就可以在模板中引用这个变量了。
比如:```Wee to $name!```这样就会在生成的文件中,将$name替换为具体的数值,也就是"velocity2.0"。
6. 变量的作用域velocity2.0中的变量和作用域和Java中的类似,有全局变量和局部变量之分。
全局变量是在整个模板中都可以访问的,而局部变量只在某个指令块中可以访问。
7. 方法除了变量之外,方法也是velocity2.0中比较重要的概念。
在模板中,可以通过方法来执行一些逻辑操作,比如字符串的拼接、条件判断、循环等。
8. 方法的定义与调用在velocity2.0模板中,可以通过#macro指令来定义一个方法,然后通过#call指令来调用这个方法。
《Velocity java开发指南》中文版
《Velocity java开发指南》中文版本文档来自网络,本人将其收集整理了一下,主要调整了一下格式.如有出入,请参照网络原版,原版地址记不清了!O(∩_∩)O哈哈~目录开始入门 (3)参考资源: (4)它是如何工作的? (5)单实例还是多实例(To Singleton Or Not To Singleton...)? . (7)The Context (9)Using Velocity In Servlets (12)Using Velocity In General Applications (15)Application Attributes (19)EventCartridge and Event Handlers(事件分发和处理) (20)Velocity Configuration Keys and Values(配置参数名字和值说明) (23)Configuring the Log System(日志记录配置) (26)Configuring Resource Loaders(资源装载器配置) (29)Template Encoding for Internationalization(字符编码和国际化) (32)Velocity and XML (33)FAQ (Frequently Asked Questions)开发中常见的问题解答. (36)Summary (37)Appendix 1 : Deploying the Example Servlet (38)开始入门Velocity是一基于java语言的模板引擎,使用这个简单、功能强大的开发工具,可以很容易的将数据对象灵活的与格式化文档组装到一起;希望本文能指引使用velocity在开发基于servlet或一般java应用程序的应用上快速起步。
1.Getting Started取得Velocity并在你的机器上开始运行很容易,以下是全部详细的说明:取得Velocity发布版本,go here。
velocity入门教程
</servlet> <servlet-mapping>
<servlet-name>velocity</servlet-name> <url-pattern>*.vm</url-pattern> </servlet-mapping> </web-app>
velocityContext.put("txt", "hello, world!");
StringWriter stringWriter = new StringWriter(); template.merge(velocityContext, stringWriter);
System.out.println(stringWriter.toString()); } }
代码中首先初始化一个 velocity 引擎,并载入一个.vm 文件,vm 就是 velocity 模板文
件的标准后缀,初始化 velocity 上下文,将一个叫做“hello, world!”的字符串以一个名
为“txt”的键,加入 velocity 上下文中,然后输出最终结果。
4
hello.vm 的内容为$txt
response); }
}
代码中,我们仅仅是向 request 域中放入了一个叫做“txt”的属性,然后指定了 vm
视图的路径,和使用 JSP 视图做法是一样的。
在/WEB-INF/views 下,创建一个 test.vm,内容如下
《Velocity Web应用开发指南中文版》
《V elocity1.4使用指南中文版》中文版来源声明:转载请保留此页声明**************************************************************************此文档为蓝杰实训学员拓展实训之用.蓝杰实训不对译文中某些说法可能会对您的系统或开发造成损害负责.如对您有所帮助,我们不胜荣幸!*************************************************************************本文属中的Velocity中文系列,本系包含如下文章:《Velocity Java开发指南中文版》(Developer`s Guide)《Velocity模板使用指南中文版》(User`s Guide)《Velocity Web应用开发指南中文版》(Web Application Guide)《VTL语法参考指南中文版》(VTL Reference)《DB4O中文系列之起步篇》...更多资料请访问/下载.**************************************************************************译者:javaFoundMail:javafound@@*************************************************************************目录1.使用Velocity构建Web应用 (3)e a Framework (3)3.Web应用用例 (3)4.不要改变己输出对象的状态! (4)5.HTML/XML字符转义 (4)6.应用安全性 (5)7.日志文件 (5)8.布署指南 (5)1.使用Velocity构建Web应用Velocity常见的用途是生成web页面,通常用来替换JSP技术.使用它生成页面有以下优势:∙简洁–一般的web美工不需要懂程序语言的就可以设计动态业面.∙Web系统容易维护–MVC推荐的做法是在页面中不要存在其它的脚本语言出现..∙容易访问数据模型的命令和属性–页面设计者通过引用简单的就可访问context中的java数据对象.∙一致性–Velocity可用做其它的文本模板生成任务,如如发送email.本文讲解了将Velocity应用与web应用的一些基本方法.e a FrameworkVelocity的主要目标是通过模板生成格式文档.因此,Velocity自身不提供任何Web相关的功能.当你需要开发Web应用时,需要一个框架来接收HTTP请求和,处理用户认证,执行业务逻辑调用,最后生成应答内容返回给客户端。
速度Velocity(Speed)惯量Inertia
精密位移台运动系统的技术参数介绍任何位移台都有6个自由度:3个分别沿着x、y、z 轴方向的平移自由度,另外3个则是围绕x、y、z 轴的旋转自由度(如图1)。
图1 右手坐标系显示6个方向的自由度此处描述的所有运动都是关于右手坐标系的,所有的运动都可以看成是由沿坐标轴方向的平动和绕坐标轴方向的转动的复合运动。
当选择一款专业的位移台时,需要考虑很多不同评定位移台性能的指标。
了解各种各样参数的定义以及他们如何影响运行结果将简化产品的选择过程。
1. 分辨率Resolution分辨率是指移动系统可以分辨的最小位置增量,它不同于系统的最小控制增量。
同样涉及到显示器和数据采集器的分辨率,通常取决于编码器的输出,但由于滞后、背隙等导致传动系统的降低,因而大多系统的最小移动增量都不等于分辨率,除非编码器直接测量传动。
(1)对于电动平移台而言,分辨率为步进电机每转动最小的一步,位移台的运动输出量。
电动平移台的分辨率可以用以下公式计算: 分辨率=电机驱动器细分数电机步距角螺杆导程×360例如:螺杆导程是4mm,电机的步距角是 1.8º,驱动器设置为20细分,则分辨率是0.001mm。
分辨率=0.001mm 021.83604=× (2)电动旋转台的角分辨率可以用以下公式计算: 角分辨率=传动比电机驱动器细分数步距角× 例如:电机的步距角是1.8º,传动比是180:1,驱动器设置为20细分,则角分辨率是0.0005º。
角分辨率=°=×0005.0180208.1 2. 灵敏度Sensitivity能产生一个输出运动的最小输入,通常用来表征手动位移台,也可以定义为输入驱动和输出运动的比值,这个术语经常和分辨率混淆。
3.精度Accuracy对于一个给定的输入,实际位置和理想位置之间的最大差距。
运动系统的精度跟实际位置的测量方式有很大的关系,所以对于开环设备中精度并不是一个很有意义的参数。
Velocity教程
#set($monkey = $bill)变量reference #set($monkey.Friend = “monica”)##String literal #set($monkey.Blame = $whitehouse.leak)##属性reference #set($monkey.Plan = $spindoctor.weave($web))##方法 #set($monkey.Number = 123)##Number literal #set($monkey.Say = [”Not” ,$my, ”fault”])##ArrayList 最后一个的取值方法是:$monkey.Say.get(0)
一次可以导入多个文件
#macro ( d ) <tr><td></td></tr> #end 上面的模板定义为d,调用时: #d() Velocity 将用<tr><td></td></tr>替换#d()
一个参数是color,另一个参数是一个数组: #macro( tablerows $color $somelist) #foreach( $something in $somelist ) <tr><td bgcolor=$color>$something</td></tr> #end #end
UED实习生
——欧阳涛
是基于java的模板引擎; 名称字面翻译为:速度、速率、迅速; Jsp的替代品; Apache对它的定义是:一种基于Java的模板引擎,但 允许任何人使用简单而强大的模板语言来引用定义在 Java代码中的对象;
在Velocity中,变量的定义都是使用“$”开头的,$作 为Velocity的标识符。字母、数字、中划和下划线都可 以作为Velocity的定义变量。未被定义的变量被看做字符串! 需要注意的是Velocity特色的变量定义,如: $student.No、$student.Address:
OCBC Velocity用户指南说明书
June 2023OCBC OneToken for OCBC VelocityUser GuideHelp & SupportClick here for OCBC OneToken General FAQsEmail **************Call (603) 8317 5200 or (603) 8314 9090 from Monday to Friday, 9am to 6pm (excluding public holidays) Version 1.9 07062023. OCBC Bank (Malaysia) Berhad (199401009721 / 295400-W ). All Rights Reserved.Table of ContentsTable of Contents 2OCBC OneToken for OCBC Velocity User Guide – Chinese Version 41.0 What is OCBC OneToken? 5Internet Banking5 Mobile Banking52.0 Getting started on OCBC Velocity 63.0 New User Activation - for user with Welcome Email notification or Password Mailer 73.1 New User Activation – via Mobile (for Security Software Token user only) (7)3.2 New User Activation – via Web (for Security Hardware Token user only) (13)4.0 Existing User Activation (with Security Hardware Token) 164.1 Existing User Activation – via Mobile (16)4.2 Existing User Activation – via Web (21)5.0 Subsequent Login 235.1 Subsequent Login – via Mobile (23)5.2 Subsequent Login – via Web (24)6.0 Approving a transaction 306.1 Approving a transaction - via Web (30)6.2 Approving a transaction - via Mobile (34)7.0 Lost/ Changed your mobile phone or Reinstalled app? 367.1 via Mobile (36)7.2 via Web (41)8.0 Problem Activating OCBC OneToken? 438.1 Compatibility, Permission & Notification (43)8.1.1 Compatibility OS Checking 438.1.2 Permission & Notification Checking 44 8.2 Commonly Encountered Issues (45)8.2.1 Redirected to “Oops! Please install or update your Mobile Banking app”458.2.2 Error message “Sorry, we are experiencing technical difficulty at the moment”458.2.3 Error message “Oops! OCBC Business Mobile Banking app and OneToken is not compatible with your mobile device”46OCBC OneToken for OCBC Velocity User Guide – Chinese Version 华侨银行OneToken 为 OCBC Velocity 中文用户指南Click here on the icon below to view OCBC Velocity User Guide – Chinese Version点击下面的图标以查看《OneToken 为 OCBC Velocity 用户指南》Velocity@OneTokenUser Guide - CN.pdfNote: If you have trouble accessing the links above, please download this user guide first.注: 如果您在使用以上的链接时遇到问题,请先下载此用户指南。
Velocity Intel CPU 水晶块用户手册说明书
This product is intended for installation only by expert users. Pleaseconsult with a qualified technician for installation. Improper installation mayresult in damage to your equipment. EK Water Blocks assumes no liabilitywhatsoever, expressed or implied, for the use of these products, nor theirinstallation. The following instructions are subject to change withoutnotice. Please visit our website at for updates. Beforeinstallation of this product, please read important notice, disclosure, andwarranty conditions that are printed on the back of the box.Before you start using this product, please follow these basic guidelines:Please carefully read the manual before beginning the installationprocess.Please remove your graphics card from the computer to assure thesafest mounting process and prevent any possible damage to yourGPU and/or graphics card circuit board (PCB).The EK Fittings require only a small amount of force to screwthem firmly in place since the liquid seal is ensured by the rubberO-ring gaskets.The use of corrosion inhibiting coolants is always recommendedfor liquid cooling systems, and mandatory for nickel platedwater blocks!Do not use pure distilled water! For best results EK rrecommendsthe use of EK-CryoFuel coolants.Make sure to thoroughly bleed air out of your water block, or you willnot reach optimal performance.TABLE OF CONTENTGENERAL INFORMATION ON WATER BLOCK COMPATIBILITY 4 BOX CONTENTS 5 WATER BLOCK DIMENSIONS 6 TECHNICAL SPECIFICATIONS AND WATER BLOCK PARTS 7SUPPORT AND SERVICE 18 SOCIAL MEDIA 18GENERAL INFORMATION ON WATER BLOCK COMPATIBILITYThis CPU liquid cooling unit is pre-assembled for use with modern Inteldesktop socket type motherboards. By default (out of the box) this waterblock supports the following CPU sockets:- Intel LGA-1150/1151/1155/1156- Intel LGA-1200- Intel LGA-2011(-3)- Intel LGA-2066Washer (5 pcs)Spring (4 pcs)Standoff - LGA 115x / AMD (4 pcs)BOX CONTENTSStandoff - 20xx (4 pcs) EK-Velocity universal CPU water block with the Intel bracket (1 pc)Allen Key 2.5 mm (1 pc)Thumb Nut (4 pcs)EK-Loop Intel CPU Backplate M4 (1 pc)Additional Jet Plate – 0.8 mm (1 pc)Thermal grease (1 pc)Universal Mounting Mechanism – You may not need every screw from this package. EAN: 3831109813065WATER BLOCK DIMENSIONSTECHNICAL SPECIFICATIONS AND WATER BLOCK PARTSTechnical Specification:- Dimensions (L x H x W): 91 x 91 x 22 mm - D-RGB cable length: 500 mm - D-RGB LED count: 20- D-RGB connector standard 3-pin (+5V, Data, Blocked, Ground)- Dimensions (L x H x W): 91 x 91 x 22 mm- D-RGB cable length: 500 mm- D-RGB LED count: 1- D-RGB connector standard 3-pin (+5V, Data, Blocked, Ground)REPLACING THE JET PLATE PROCEDURESTEP 1Please reference the table below to determine the optimal insert andjet plate needed for your type of socket.J1d= 1 mm J2d= 0.8 mmSTEP 2Unscrew the four M4 screws in counter-clock-wise direction from the bottom of the water block using the enclosed 2.5 mm Allen key to release the assembly, which consists of the water block top and jet plate. Upon replacing the jet plate, please reassemble the water block as shown in STEP 1 and STEP 2. Pay special attention to the insert orientation relative to the copper base and the water block top.Screw the four screws back in firmly, but not forcefully.INSTALLING THE WATER BLOCKBACKPLATESTEP 1 – NEW BACKPLATEInstall the Intel backplate for LGA-115x/1200 socket to the back of your motherboard. Align the holes on the motherboard with the holes on the backplate.STEP 2 – NEW BACKPLATEInstall four (4) M3 thumb screws onto your motherboard. It is mandatory to put 0.7mm plastic washer underneath each of the M3 thumb screws. Tighten the screws to the metal backplate until you reach the end of the thread. Using tools (such as pliers) is not recommended.BACKPLATESTEP 1 – OLD BACKPLATEIf already installed, please remove the motherboard from your computer and place it on an even surface with front facing down. STEP 2 – OLD BACKPLATEPreparing backplate rubber gasketThe enclosed rubber gasket is an essential part of the backplate and mounting system and must be used every time you install this water block on your motherboards.CONNECTING THE RGB LED STRIP (Optional)STEP 4 – OLD BACKPLATEInstall four (4) M3 thumb screws onto your motherboard. It is mandatory to put 0.7mm plastic washer underneath each of the M3 thumb screws. Tighten the screws to the metal backplate until you reach the end of the thread. Using tools (such as pliers) is not recommended.SUPPORT AND SERVICEIn case you need assistance or wish to order spare parts or a new mounting mechanism, please contact:https:///customer-support/For spare parts orders, refer to the page with “TECH NICAL SPECIFICATIONS AND WATER BLOCK PARTS” where you can find the EAN number of each part you might need.Include the EAN number with quantity in your request. Mounting Mechanism EAN can be found under “BOX CONTENTS”Thermal pads are readily available in the EK shop SOCIAL MEDIAEKWaterBlocks@EKWaterBlocksekwaterblocksEKWBofficialekwaterblocks。
Velocity用户手册
Velocity用户手册-摘抄Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity也可以为Turbine web开发架构提供模板服务(template service)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
Velocity能为我们作什么?The Mud Store Example假设你是一家专门出售Mud的在线商店的页面设计人员,让我们暂且称它为“在线MUD商店”。
你们的业务很旺,客户下了各种类型和数量的mud订单。
他们都是通过输入用户名和密码后才登陆到你的网站,登陆后就允许他们查看订单并购买更多的mud。
现在,一种非常流行的mud正在打折销售。
另外有一些客户规律性的购买另外一种也在打折但是不是很流行的Bright Red Mud,由于购买的人并不多所以它被安置在页面的边缘。
所有用户的信息都是被跟踪并存放于数据库中的,所以某天有一个问题可能会冒出来:为什么不使用 velocity来使用户更好的浏览他们感兴趣的商品呢?Velocity使得web页面的客户化工作非常容易。
作为一个web site的设计人员,你希望每个用户登陆时都拥有自己的页面。
你会见了一些公司内的软件工程师,你发现他们每个人都同意客户应该拥有具有个性化的信息。
那让我们把软件工程师应该作的事情发在一边,看一看你应该作些什么吧。
你可能在页面内嵌套如下的VTL声明:Java代码1.<html>2.<body>3.Hello $!4.<table>5.#foreach( $mud in $nudsOnSpecial );6.#if ( $customer.hasPurchased( $mud ); );7.<tr><td>$flogger.getPromo( $mud );</td></tr>8.#end9.#end10.</table>Velocity Template Language(VTL):AN introductionVTL意味着提供最简单、最容易并且最整洁的方式合并页面动态内容。
velocity教程
velocity教程Velocity是⼀个基于java的模板引擎(template engine)。
它允许任何⼈仅仅简单的使⽤模板语⾔(template language)来引⽤由java代码定义的对象。
当Velocity应⽤于web开发时,界⾯设计⼈员可以和java程序开发⼈员同步开发⼀个遵循MVC架构的web站点,也就是说,页⾯设计⼈员可以只关注页⾯的显⽰效果,⽽由java程序开发⼈员关注业务逻辑编码。
Velocity将java代码从web页⾯中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外⼜提供了⼀种可选的⽅案。
⼀、Velocity脚本语法摘要1. 变量(1)变量的定义:#set($name = "hello") 说明:velocity中变量是弱类型的。
当使⽤#set 指令时,括在双引号中的字⾯字符串将解析和重新解释,如下所⽰:#set($directoryRoot = "www" )#set($templateName = "index.vm" )#set($template = "$directoryRoot/$templateName" )$template输出将会是:www/index.vm注:在velocity中使⽤$2.5这样的货币标识是没有问题得的,因为velocity中的变量总是以⼀个⼤写或者⼩写的字母开始的。
(2)变量规范的写法${name} ,也可以写成:$name。
提倡⽤前⾯的写法。
例如:你希望通过⼀个变量$vice来动态的组织⼀个字符串。
Jack is a $vicemaniac.本来变量是$vice现在却变成了$vicemaniac,这样Veloctiy就不知道您到底要什么了。
所以,应该使⽤规范的格式书写: Jack is a ${vice}maniac现在Velocity知道变量是$vice⽽不是$vicemaniac。
velocity 参数
velocity 参数Velocity is a crucial parameter in physics that describes the rate at which an object changes its position. In other words, it is the speedat which an object is moving in a particular direction. The concept of velocity is fundamental to understanding motion and is an essential tool for scientists and engineers to analyze and predict the behavior of various systems. Without velocity, it would be nearly impossible to make accurate calculations and measurements in the field of physics.速度是物理学中一个关键的参数,它描述了物体改变位置的速率。
换句话说,速度是物体沿着特定方向移动的快慢。
速度的概念对于理解运动是至关重要的,它是科学家和工程师分析和预测各种系统行为的基本工具。
没有速度,几乎不可能在物理领域进行准确的计算和测量。
In everyday life, we often hear people talk about how fast they are driving or how quickly they can run. These are all examples of velocity in action. Whether we are walking, biking, or driving a car,we are constantly aware of our speed and direction. Velocity is not just a scientific concept; it is a practical aspect of our dailyexperiences. From catching a bus to playing sports, velocity plays a crucial role in determining the outcome of various activities.在日常生活中,我们经常听到人们谈论他们开车的速度有多快或者他们跑步有多快。
velocity 引用模板
velocity 引用模板1. 介绍什么是Velocity引用模板:Velocity引用模板是一种用于动态生成文本输出的模板引擎。
它通过将模板与数据结合,生成最终的文本输出。
Velocity引用模板具有简洁、灵活和可重用的特性,是创建动态网页和生成视图的有力工具。
2. Velocity引用模板的基本语法:Velocity引用模板使用简单易懂的语法,它主要由一些特殊的指令和变量组成。
其中,指令用以控制模板的逻辑流程,变量用于填充模板中的占位符。
具体语法如下:a) 指令:Velocity指令以""符号开头,可用于条件判断、迭代循环等操作。
常用的指令有:#if、#foreach、#include等。
b) 变量:Velocity变量以""符号开头,并且区分大小写。
通过变量,我们可以将数据引入到模板中。
例如:username。
c) 注释:Velocity支持单行注释和多行注释,分别用"#"和""符号开始。
3. Velocity引用模板的应用场景:由于Velocity引用模板具有非常灵活的特性,它在各种程序设计环境中都有广泛的应用。
以下是一些常见的应用场景:a) Web应用开发:Velocity引用模板在Web应用开发中被广泛应用于动态网页的生成。
通过将模板与数据结合,我们可以轻松地生成HTML、XML 等格式的文本输出。
b) 邮件模板:通过Velocity引用模板,我们可以创建邮件模板,并且根据特定的数据来填充模板。
这使得邮件可以个性化地发送给不同的接收者。
c) 批量文件生成:如生成批量PDF、Excel等文件时,Velocity引用模板可以大大简化生成过程,并且保证文件的一致性和准确性。
4. Velocity引用模板的优势:使用Velocity引用模板具有多个优势,如下所示:a) 简单易学:Velocity引用模板提供了直观、易懂的语法,使得初学者可以很快上手使用。
Velocity 《VTL语法参考指南》中文版
《VTL语法参考指南》中文版源文见声明: 转载请保留此页声明**************************************************************************此文档为蓝杰实训学员拓展实训之用.蓝杰实训不对译文中某些说法可能会对您的系统或开发造成损害负责.如对您有所帮助,我们不胜荣幸!*************************************************************************本文属中的Velocity中文系列,本系包含如下文章:《Velocity Java开发指南中文版》(Developer`s Guide) 《Velocity模板使用指南中文版》(User`s Guide)《Velocity Web应用开发指南中文版》(Web Application Guide)《VTL语法参考指南中文版》(VTL Reference)《DB4O中文系列之起步篇》. . .更多资料请访问/下载.**************************************************************************译者:javaFoundMail: javafound@@*************************************************************************Velocity()通常用来替换JSP技术. 使用它生成页面有以下优势:∙简洁–一般的web美工不需要懂程序语言的就可以设计动态业面.∙Web系统容易维护–MVC推荐的做法是在页面中不要存在其它的脚本语言出现..∙容易访问数据模型的命令和属性–页面设计者通过引用简单的就可访问contex t中的java数据对象.∙一致性–Velocity可用做其它的文本模板生成任务,如如发送email.本系列全面讲解了将Velocity应用从入门到精通其技术特点应用的每个方面,助你成为MV C构架的高手.目录1.关于本指南2.语法参考1.变量定义2.访问属性命令调用3.动作指令1.#set –建立变量对值的引用2.#if/#elseif/#else-条件判断3.#foreach---使用循环通过列表迭代对象4.#include –在模板中引入本地文件,不用Velocity解析这个文件5.#parse –在模板引用处使用Velocity解析另一个模板输出6.#stop –中断模板解析7.#macro –让用户可以定义宏操作(Velocimacro (VM):一组实现特定功能的VTL) ments 注解1.单行注解2.多行注解5.Feedback1.关于本指南本文为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-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 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 ExampleEquals 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 )注意:1.“== “操作可以用来比较数字,字符串,或同一个类的不同对象或不同类型的对象. 当是不同类的对象时,会调用它们的toString()命令结果来做比较看是否相等.2.也可以如下用法,但注意else处,用{}括起.#if( $foo == $bar)it's true!#{else}it's not!#end</li>3.#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] )如下可以取得循环次数的当前值:<table>#foreach( $customer in $customerList )<tr><td>$velocityCount</td><td>$</td></tr>#end</table>默认的循环次数的引用变量名为$velocityCount. 可以在配置文件velocity.properties中做如下修改成你想要的:# Default name of the loop counter# variable reference. = 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 )通过设置配置中的解析层次深度的最大值velocity.properties中项parse_directive.maxdep th 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 时生效.ments 注解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!。
Velocity脚本简明教程
Velocity脚本简明教程文 / YaSin来源于:博客园很多人下载了EasyJWeb的开源应用示例,但是对动态页面模板文件中的标签使用不是很熟悉,这里简单介绍一下。
EasyJWeb特定把视图限定为Velocity,因为我们觉得在Velocity在表现上从可维护性、简洁性乃灵活性上,比JSP及其它视力技术表现强得多。
虽然我们可以非常简单把EasyJWeb扩展成支持多种视力技术,但当前我们不打算这样做!使用EasyJWeb的目的,是在于把页面-程序完成分开,就也就是一个项目中,程序员使用专业Java开发工具(如Eclipse、JBuilder等)来编写、调试、测试程序,页面制作人员使用专业的网页制作工具(如Macromedia Dreamweaver)来设计制作网页,而两者之间的协调通过一个规范的接口协议来解决。
需要在页面里面加如一些标签,来生成动态内容,这一工作可以交由网页制作人员来完成。
因为使用Velocity作为视图,由于他的语法、功能及使用方法都比较简单,因此一般情况下,一天以内就能让页面制作人员熟练掌握其用法。
Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
作为一个比较完善的模板引擎,Velocity的功能是比较强大的,但强大的同时也增加了应用复杂性。
一、基本语法1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;如:#if($info.imgs)<img src="$info.imgs" border=0>#else<img src="noPhoto.jpg">#end2、"$"用来标识一个对象(或理解为变量);如:$i、$msg、$TagUtil.options(...)等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
$book.setTitle( "Homage to Catalonia" )
##不能传递一个参数列表
写在VTL参考文档中的是其他Velocity元素,他们一起给你很强大的能力和灵活性以创建很好的站点。待你更加了解这些元素,就可以开始释放Velocity的强大动力。
4.
Velocity模板语言(VTL)旨在为Web页面结合动态内容提供最容易、简单和简洁的方法。即使有一点或者没有编程经验的页面设计者也可以很快能为页面提供动态内容。
7.1.
变量的简略标记是有一个前导"$"字符后跟一个VTL标识符(Identifier.)组成。一个VTL标识符必须以一个字母开始(a .. z或A .. Z)。剩下的字符将由以下类型的字符组成:
字母(a .. z, A .. Z)
数字(0 .. 9)
连字符("-")
下划线("_")
下面是一些有效的变量引用:
2.
Velocity是一个基于Java的模版引擎。它允许web页面设计者引用JAVA代码预定义的方法。Web设计者可以根据MVC模式和JAVA程序员并行工作,这意味着Web设计者可以单独专注于设计良好的站点,而程序员则可单独专注于编写底层代码。Velocity将Java代码从web页面中分离出来,使站点在长时间运行后仍然具有很好的可维护性,并提供了一个除JSP和PHP之外的可行的被选方案。
$customer.getAddress()
$purchase.getTotal()
$page.setTitle( "My Home Page" )
$person.setAttributes( ["Strange", "Weird", "Excited"] )
前面两个例子--$customer.getAddress()和$purchase.getTotal()–看起来有点象上面属性一节中所用的样子,$customer.Address和$purchase.Total.。如果你想这些例子在某些方面相关,那你就对了。
3.
3.1.
假设你是一个专门销售泥浆(MUD)的在线商店的页面设计者。我们称他为"The Online Mud Store"。生意很好。客户订购各种各样的类型和数量的泥浆。他们使用他们的用户名和密码登陆到商店中来,就可以浏览他们的订货和购买其他东西。现在,赤土陶泥正在促销,这是一种很常用的泥巴。一少部分顾客很有规律的购买一种亮红土Bright Red Mud,这也是促销产品,但是不太常用,因此被移到页面的边缘。所有顾客的信息都在数据库中被跟踪,因此有一天问题出现了:为什么不使用Velocity来定位目标客户,这些客户对某种类型的产品特别感兴趣?
Online visitors can see it.
#*
Thus begins a multi-line comment. Online visitors won't
see this text because the Velocity Templating Engine will
ignore it.
这个VTL语句,就像所有的VTL语句一样,以#字符开始,并跟着一个指令set。当一个在线访问这请求页面时,Velocity模伴引擎在页面内搜索所有#字符,然后决定是哪一个标记了VTL语句的开始,哪个标记不需要VTL做什么动作。
#字符后面紧跟一个指令set.。set指令使用一个括在括号内的表达式---一个等式将一个值指派给一个变量。变量在等号的左边而值在等号的右边。
@author
@version 5
*#
7.
VTL中有三种类型的引用:变量,属性和方法。作为使用VTL的设计者,你和你的工程师必须在饮用的特定命名上取得一致,以便在你的模板中正确的使用他们。
有关引用的所有参数都处理为字符串对象。Everything coming to and from a reference is treated as a String object.假如有一个对象表示$foo(比如说是整型对象),Velocity将调用其toString()方法来将此对象转换为一个字符串。
Velocity使针对访问者个性的WEB页面客户化(个性化)非常容易。作为一个在线泥巴商店的站点设计者,以想在客户以登陆进展点后就看到它们想看的页面。
你遇到你公司的软件工程师,每个人都认为$customer将保持当前登陆进入的客户信息,而$mudsOnSpecial将士当前所有促销的泥巴。$flogger对象包含有助于促销的方法。对于当前的任务,让我们仅关注这三个问题。记住,你不需要担心软件工程师如何从数据库中取得顾客信息,但你必须知道他们可以。这样可以使你专注于你的工作而软件工程师则忙于他们自己的工作。
1.
Velocity用户指南旨在帮助页面设计者和内容提供者了解Velocity和其简单而又强大的脚本语言(Velocity Template Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL examples都同演示用于所有的页面和模版。
VTL属性可以为VTL方法用作简略标记。属性$customer.Address具有和方法$customer.getAddress()完全一样的效果。属性和方法的主要不同点是方法中可以添加参数列表。简略标记可以用在下面的方法中:
sun.getPlDirt()
$album.getPhoto()
7.3.
方法在JAVA代码中定义,并作一些有用的事情,比如运行一个计算器或者作出一个决定。方法是实际上也是引用,由前导符"$"后跟一个VTL标识符,后跟一个VTL方法体(Method Body)。VTL方法体由一个VTL标识符后跟一个左括号,再跟可选的参数列表,最后是右括号。下面是一些有效的方法示例:
</body>
<html>
这个页面的结果是输出"Hello Velocity World!"。
为了使包含VTL指令的语句具有可读性,我们鼓励每个VTL语句在一个新行开始,虽然并不一定要这样做。set将随后深入解释。
6.
可以用注释加入描述性文本,他们并不在模板引擎中输出。注释可以有助于你的记忆或者想其他人解释你的VTL语句正在做什么。
is not visible. This text is not visible; it is also part of the
multi-line comment. This text still not visible. *# This text is outside
the comment, so it is visible.
7.2.
VTL引用的第二种元素是属性,而属性具有独特的格式。属性的简略标记识前导符$后跟一个VTL标识符,在后跟一个点号(".")最后又是一个VTL标识符。这是一些有效的示例:
$customer.Address
$purchase.Total
请看第一个例子,$customer.Address.。他有两种意思。它可以意味着,查询由customer标是的哈希表并按关键字Address返回值。但是$customer.Address也可能引用一个方法(下述,$customer.Address可能是$customer.getAddress().的缩写。当一个页面被请求时,Velocity将决定这两种可能到底是哪一个,然后返回相应的值。
## This is a single line comment.
单行注释以##开始,并在本行结束。如果需要加入多行注释,并不需要加入很多的单行注释。多行注释,以#*开始并以*#结束可以处理这种情况。
This is text that is outside the multi-line comment.
## This text is not visible.
还有第三种注释,VTL注释块,可以用来存储诸如文档作者、版本信息等。
#**
This is a VTL comment block and may be used to store such information as the document author and versioning information:
我们或许希望方法可以为我们放回属于太阳系的行星的名字,喂养我们的蚯蚓,或者从相册中返回一张照片。下面只有长的那个标记是可以工作的方法:
$sun.getPlanet( ["Earth", "Mars", "Neptune"] )
##不能将参数列表传递给$sun.Planets
$sisyphus.pushRock()
*#
Here is text outside the multi-line comment; it is visible.
下面事一些例子说明单行注释和多行注释如何工作。
This text is visible. ## This text is not.
This text is visible.
This text is visible. #* This text, as part of a multi-line comment,
</td>
</tr>
#end
#end
</table>
foreach语句的细节将进一步细说,但重要的是这个短小的脚本居然可以在你的站点上运行。当有一个倾向于亮红土的顾客登陆进来时,亮红土正在促销,这就是这个顾客所看到的,并且促销显示非常显著。如果另外一个长期购买赤陶土的顾客登陆进来,赤陶土促销的提示信息则应该在前面中间位置。Velocity是非常灵活的,受限的只是你的创造力。