velocity中文手册
velocity入门使用教程

V elocity入门使用教程一、使用velocity的好处:1.不用像jsp那样编译成servlet(.Class)文件,直接装载后就可以运行了,装载的过程在web.xml里面配置。
【后缀名为.vhtml是我们自己的命名方式。
也只有在这里配置了哪种类型的文件,那么这种类型的文件才能解析velocity语法】2.web页面上可以很方便的调用java后台的方法,不管方法是静态的还是非静态的。
只需要在toolbox.xml里面把类配置进去就可以咯。
【调用的方法$class.method()】即可。
3.可以使用模版生成静态文档html【特殊情况下才用】二、使用1、下载velocity-1.7.zip 、velocity-tools-2.0.zip2、解压后引用3个jar文件velocity-1.7.jar、velocity-tools-2.0.jar、velocity-tools-view-2.0.jar 还有几个commons-…..jar 开头的jar包三、配置文件:Web.xml<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"version="2.5"> <servlet><servlet-name>velocity</servlet-name><servlet-class>org.apache.velocity.tools.view.VelocityViewServlet</se rvlet-class><load-on-startup>1</load-on-startup></servlet><!—在这里配置的mapping中,说明只有后缀名为vm、jsp、html的文件里面才能使用velocity语法,也可以自定义自己的后缀名,只要在下面mappin中添加即可--> <servlet-mapping><servlet-name>velocity</servlet-name><url-pattern>*.vm</url-pattern></servlet-mapping><servlet-mapping><servlet-name>velocity</servlet-name><url-pattern>*.jsp</url-pattern></servlet-mapping><servlet-mapping><servlet-name>velocity</servlet-name><url-pattern>*.html</url-pattern></servlet-mapping></web-app>Toolbox.xml 【这个文件和web.xml放在一起,不要改名字,否则不会自动加载】<?xml version="1.0"encoding="UTF-8"?><tools><data type="string"key="version"value="2.0"/><!—在这里配置类,在项目启动的时候就自动把类实例化好了,在页面就可以用了,例子:下面 ${test.Method()}--><toolbox scope="request"><!-- currentProject util start --><tool key="test"class="com.gzrj.services.Test"></tool>...<!-- currentProject util end --><!—下面的这些配置都是velocity的配置,可以不用管,也不能更改 --><!-- velocity util start --><tool class="org.apache.velocity.tools.view.CookieTool"/><tool class="org.apache.velocity.tools.view.ImportTool"/><tool class="org.apache.velocity.tools.view.IncludeTool"/><tool class="org.apache.velocity.tools.view.LinkTool"/><tool class="org.apache.velocity.tools.view.PagerTool"/><tool class="org.apache.velocity.tools.view.ParameterTool"/><tool class="org.apache.velocity.tools.view.ViewContextTool"/><tool class="org.apache.velocity.tools.generic.ContextTool"/><tool class="org.apache.velocity.tools.generic.LoopTool"/><tool class="org.apache.velocity.tools.generic.RenderTool"/><!-- velocity util end --></toolbox><toolbox scope="session"createSession="false"><tool class="org.apache.velocity.tools.view.BrowserTool"/> </toolbox><toolbox scope="application"><tool class="org.apache.velocity.tools.generic.AlternatorTool"/> <tool class="org.apache.velocity.tools.generic.ClassTool"/><toolclass="parisonDateTool"/> <tool class="org.apache.velocity.tools.generic.ConversionTool"/> <tool class="org.apache.velocity.tools.generic.DisplayTool"/><tool class="org.apache.velocity.tools.generic.EscapeTool"/><tool class="org.apache.velocity.tools.generic.FieldTool"/><tool class="org.apache.velocity.tools.generic.MathTool"/><tool class="org.apache.velocity.tools.generic.NumberTool"/><tool class="org.apache.velocity.tools.generic.ResourceTool"/><tool class="org.apache.velocity.tools.generic.SortTool"/><tool class="org.apache.velocity.tools.generic.XmlTool"/><tool class="org.apache.velocity.tools.generic.ListTool"/> </toolbox></tools>四、页面使用(html)<!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>添加 -- 修改 -- 界面</title></head><body><br><form name="form1"id="form1"action="tree/tree!add.action"method="post"><!-- 两个隐藏表单传值 --><input type="hidden"name="updateBeforeId"id="updateBeforeId" value=$!request.produKey><input type="hidden"name="treeid"id="treeid"value=$!request.id> <table border=0><tr><td>序号:</td><td><input type="text"name="treeproduKey"id="treeproduKey" maxlength="3"onkeydown="keySel(event);"value=$!{request.produKey_3}><lable id="idname"></lable><fontcolor="red"size="2px">*序列号请输入三位数字</font></td></tr><tr><td>名字:</td><td><input type="text"name="treename"id="treename" maxlength="50"onkeydown="keySel(event);"value=$!><font color="red"size="2px">*‘输入1-50个字母、数字或者汉字’</font></td> </tr><tr><td>所属类别:</td><td><select name="selectP_id"id="selectP_id"onkeydown="keySel(event);"size="1"style="width:120px;"><option value="">根数据</option>#foreach($list in $!request.listTree)<!-- 当传过来的值id与数据库样的时候,就selected="selected -->#if($!list.id==$request.produKey_id)<option value="$!list.id"selected="selected">$!</option>#else<option value="$!list.id">$!</option> #end#end</select></td></tr><tr><td> </td></tr><tr align="center"><td colspan=2>#if(!$)<a class="easyui-linkbutton"plain="false"iconCls="icon-save"href="#this"onclick="checkForm();">确认添加</a> #else<a class="easyui-linkbutton"plain="false"iconCls="icon-save"href="#this"onclick="checkForm();">确认更新</a> #end</td></tr></table></form></body></html>。
Velocity教程

Velocity教程⼀、基本语法1、"#"⽤来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)<img src="$info.imgs" border=0>#else<img src="noPhoto.jpg">#end2、"$"⽤来标识⼀个对象(或理解为变量);如如:$i、$msg、$TagUtil.options(...)等。
3、"{}"⽤来明确标识Velocity变量;⽐如在页⾯中,页⾯中有⼀个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后⾯紧接着显⽰name字符,则上⾯的标签应该改成${someone}name。
4、"!"⽤来强制把不存在的变量显⽰为空⽩。
如当页⾯中包含$msg,如果msg对象有值,将显⽰msg的值,如果不存在msg对象同,则在页⾯中将显⽰$msg字符。
这是我们不希望的,为了把不存在的变量或变量值为null的对象显⽰为空⽩,则只需要在变量名前加⼀个“!”号即可。
如:$!msg⼆、在EasyJWeb中的最佳实践 理论上你可以在EasyjWeb模板使⽤所有Velocity的脚本及功能,但我们不推荐你在界⾯模板中使⽤过多过复杂的脚本表达⽅式,在万不得已的情况下,不要在界⾯模板中加⼊任何复杂的逻辑,更不要在界⾯模板中加⼊变量声明、逻辑运算符等等。
在EasyJWeb中,我们提供了五条基本的模板脚本语句,基本上就能满⾜所有应⽤模板的要求。
这四条模板语句很简单,可以直接由界⾯设计⼈员来添加。
在当前很多EasyJWeb的应⽤实践中,我们看到,所有界⾯模板中归纳起来只有下⾯四种简单模板脚本语句即可实现:1、$!obj 直接返回对象结果。
Velocity快速入门教程

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。
注意:当引用属性的时候不能加{}(3)变量的赋值:$name="hello"赋值的左边必须是一个变量或者是属性引用。
右边可以是下面六种类型之一:变量引用,字面字符串,属性引用,方法引用,字面数字,数组列表。
下面的例子演示了上述的每种类型:#set( $monkey = $bill ) ## variable reference#set( $monkey.Friend = "monica" ) ## string#set( $monkey.Blame = $whitehouse.Leak ) ## property reference#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference#set( $monkey.Number = 123 ) ##number#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList注意:①如果上述例子中的右值是null, 则左值不会被赋值,也就是说会保留以前的值。
Velocity配置文件详解

Velocit y配置文件详解在veloci ty的发布方包中有一个v e locit y.propert ies(位于 org.apache.velocit y.runtime.default s package下,文件定义了ve locity的配置信息o r g.apache.velocit y.runtime.Runtime Consta nts中定义了key值)#模板编码:input.encodin g=ISO-8859-1//模板输入编码output.encodin g=ISO-8859-1 //模板输出编码#foreach配置directi ve.foreach.counte= velocit yCount //计数器名称directi ve.foreach.counter.initial.value = 1 //计数器初始值directi ve.foreach.maxloop s = -1 //最大循环次数,-1为默认不限制directive.foreach.iterato = velocit yHasNe x //迭代器名称#set配置directi ve.set.null.allowed = false //是否可设置空值#include配置directi ve.include.output.errorms g.start= <!-- include error : //错误信息提示开始字符串directi ve.include.output.errorms g.end = see error log --> //错误信息提示结束字符串#parse配置directi ve.parse.max.depth = 10 //解析深度#模板加载器配置resourc e.loader= file //模板加载器类型,默认为文件,可定义多个file.resourc e.loader.descrip tion= Velocit y File Resourc e Loader//加载器描述file.resourc e.loader.class =Velocit y.Runtime.Resourc e.Loader.FileRes ourceLoader//加载器类名称file.resourc e.loader.path = . //模板路径file.resourc e.loader.cache = false //是否启用模板缓存file.resourc e.loader.modific ationC heckIn terval = 2 //检查模板更改时间间隔宏配置velocim acro.library//指定宏定义文件的位置velocim acro.permiss ions.allow.inline= true //是否可以行内定义velocim acro.permiss ions.allow.inline.to.replace.global= false //是否可以用行内定义代替全局定义velocim acro.permiss ions.allow.inline.local.scope = false //行内定义是否只用于局部velocim acro.context.localsc ope= false //宏上下文是否只用于局部velocim acro.max.depth = 20 //解析深度velocim acro.argumen ts.strict= false //宏参数是否启用严格模式#资源管理器配置resourc e.manager.class= Velocit y.Runtime.Resourc e.Resourc eManag erImpl//管理器类名称resourc e.manager.cache.class = Velocit y.Runtime.Resourc e.Resourc eCache Impl //缓存器类名称#解析器池配置parser.pool.class= Velocit y.Runtime.ParserP oolImp l //解析池类名称parser.pool.size = 40 //初始大小#evaluat e配置directi ve.evaluat e.context.class= Velocit y.Velocit yConte xt //上下问类名称#可插入intr ospect or配置runtime.introsp ector.uberspe ct = Velocit y.Util.Introsp ection.Uberspe ctImpl //默认intro specto r类名称#日志配置runtime.log = velocit y.log用以指定 Velocit y 运行时日志文件的路劲和日志文件名,如不是全限定的绝对路径,系统会认为想对于当前目录.runtime.log.logsyst em这个参数没有默认值,它可指定一个实现了org.apache.velocit y.runtime.log.LogSyst em.接口的自定义日志处理对象给Velocit y。
Velocity 模板使用指南》中文版

2.Escaping Valid VTL References(封装有效的引用)如下示,如果没有#set( $email = "foo" )这一行且java代码中Context对象中没有放放email对象,将直接输出$email.#set( $email = "foo" )$email如果email己定义了 (比如它的值是foo),而这里你却想输出$email. 这样一个字符串,就需要使用转义字符”\”.## The following line defines $email in this template:#set( $email = "foo" )$email\$email\\$email\\\$email上面的模板在web页面上的输出将是:foo$email\foo\$email但如果email并没有定义,我们这样写:.$email\$email\\$email\\\$email输出就原封不动了:$email\$email\\$email\\\$email注意:当己定义变量和未定义变量一起输出时,会输出字面意思,如下便,$moon是未定义的:#set( $foo = "gibbous" )$moon = $foo输出到web页面中将是$moon = gibbou11.Case Substitution(可选的格式)至此,你对velocity的refenerce己比较熟悉了, 你可以在你的模板中开始应用这些功能. 但你还可以知道的是Velocity references从java语法中汲取了一些优点以便模板设计者更容易使用VTL.比如:$foo$foo.getBar()## 等同于$foo.Bar$data.setUser("jon")##等同于#set( $er = "jon" )$data.getRequest().getServerName()##等同于$data.Request.ServerName## is the same as${data.Request.ServerName}这里示例了你可选的一些引用方式. VTL汲取了java语法和java bean的一些简洁语法以解析java代码中Context中的对象和这些对象的命令及属性---这样,一个java对象的所有功能都可以展示到视图中了.Velocity也借见了java Bean的规范(Bean specifications defined by Sun Microsystems), 是大小写敏感的; 但Velocity会尽可能的帮你修正错误. 当命令getFoo()通过指令 $bar.foo在模板中引用时,Velocity的搜索规则我们在前面己讲了,你还记得是什么吗?.注意:模板中引用的必须是通过java Bean中的getter/setter 实现的,而直接的java对象的数据域是不能直接引用的,如$ 会解析到 class Foo's getName() 的实例方法,但不会解析到Foos类的public Name 这个实例变量.12.Directives(指令符号)模板设计者使用“引用“生成动态内容, 指令(directives)–简单的说就是设计者在模板中操作java 对象—让视图设计者全面控制输出内容的格式.指令总是以 #开头后面紧跟具体的指令符. 就像引用一样(指令的一种),可以将指令理解为”表示这里是一个什么东东).如下例生成一个出错提示:#if($a==1)true enough#elseno way!#end这个例子中应使用括号将else分开.#if($a==1)true enough#{else}no way!#end1.#set指令#set用来给一个引用赋值.值可以被赋给变量引用或属性引用, 但要将它们放入括号中,如下示:#set( $primate = "monkey" )#set( $customer.Behavior = $primate )“左操作数被赋值“是引用操作的一个规则.=号右侧可能是以下类型之一:∙Variable reference变量引用∙String literal字符串∙Property reference 属性引用∙Method reference 命令引用∙Number literal 数字∙ArrayList 数组∙Map 映射下面是对上述类型设置的示例:#set( $monkey = $bill ) ## variable reference#set( $monkey.Friend = "monica" ) ## string literal#set( $monkey.Blame = $whitehouse.Leak ) ## property reference#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference#set( $monkey.Number = 123 ) ##number literal#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList#set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"}) ## Map注意: 在ArrayList类型引用的例子中,其原素定义在数组 [..]中, 因此,你可以使表$monkey.Say.get(0)访问第一个元素.类似的,引用Map 的例子中, 原素定义在 { } 中,其键和值间以:隔成一对,使用$monkey.Map.get("bannana") 在上例中将返回 'good', ( $monkey.Map.banana也会有同样效果).下面是一般的计算表达式:#set( $value = $foo + 1 )#set( $value = $bar - 1 )#set( $value = $foo * $bar )#set( $value = $foo / $bar )但注意:如果右边的操作数是一个属性或命令的引用而返回null,那么赋值将不会成功,且在随后的VTL 中也不能再取出使用. 如下例:#set( $result = $query.criteria("name") )The result of the first query is $result#set( $result = $query.criteria("address") )The result of the second query is $result如果$query.criteria("name")返回的是字符串 "bill", 但$query.criteria("address")返回null, 上面的TVL输出结果将是:The result of the first query is billThe result of the second query is bill这对与初学者的理解有些麻烦,比如在#foreach loops中,你使用#set给一个属性或命令赋值时,如下例示:#set( $criteria = ["name", "address"] )#foreach( $criterion in $criteria )#set( $result = $query.criteria($criterion) )#if( $result )Query was successful#end#end在上例中,就不能依赖if( $result )来决定查询是否成功. $result一但被#set 为null (context会同样), 它将不能被赋其它值 (不能从 context中取出).一个解决办法是,每次都将$result设为false. 如果$query.criteria()调用成功,就可以检测到. #set( $criteria = ["name", "address"] )#foreach( $criterion in $criteria )#set( $result = false )#set( $result = $query.criteria($criterion) )#if( $result )Query was successful#end#end注意:#set不需要使用#end来声明结尾.2.Literals (语义解析)使用#set指令时,变量如果用“”引起会被解析,如:#set( $directoryRoot = "www" )#set( $templateName = "index.vm" )#set( $template = "$directoryRoot/$templateName" )$template输出的将是:www/index.vm但当用单引号引起来时,就不会被解析::#set( $foo = "bar" )$foo#set( $blargh = '$foo' )$blargh输出后会是:bar$foo默认情况下,不会解析单引号中的变量,当然,这可以通过改变Velocity的配置参数来改变:velocity.properties such that stringliterals.interpolate=false.另外, 指令#literal元素可以用来输出字面意思,如下示.#literal()#foreach ($woogie in $boogie)nothing will happen to $woogie#end#end会输出::#foreach ($woogie in $boogie)nothing will happen to $woogie#end3.Conditionals(条件判断)1.If / ElseIf / Else#if指令用来根据条件在页面中输出内容, 如下简单的例子:#if( $foo )<strong>Velocity!</strong>#end根据变量$foo计算后是否为true决定输出, 这会有两种情况: (i) $foo的是值是一个boolean (true/false)型并有一个true value, 或(ii) 它是一个非null值. 要记者,Velocity context 中只能包含Objects, 因此当我们讲'boolean'时, 它就是一个Boolean (the class).在#if和#end的内容是否会输出,由$foo是否为true决定. 这里,如果$foo is true, 输出将是: "Velocity!". 如果$foo为null或false,将不会有任何输出.#elseif或#else可以#if和组合使用. 如果第一个表达式为true,将会不计算以后的流程,如下例假设t $foo是15 and $bar产6.#if( $foo < 10 )<strong>Go North</strong>#elseif( $foo == 10 )<strong>Go East</strong>#elseif( $bar == 6 )<strong>Go South</strong>#else<strong>Go West</strong>#end输出将会是Go South.2.Relational and Logical Operators(关系和逻辑运算)Velocity使用==来做比较,如下例.#set ($foo = "deoxyribonucleic acid")#set ($bar = "ribonucleic acid")#if ($foo == $bar)In this case it's clear they aren't equivalent. So...#elseThey are not equivalent and this will be the output.#end注意:==计算与java中的==计算有些不同:不能用来测试对象是否相等(指向同一块内存). Velocity 中是否相等仅直接的用来比较numbers, strings的值, or objects的toString()结果是否相等. 如果是不同的对象,会调用它们的toString()命令结果来比较.Velocity也使用AND, OR and NOT 执行逻辑运算.详细说明请参看《VTL参考中文版》,如下是一些简单示例:## logical AND#if( $foo && $bar )<strong> This AND that</strong>#end仅当$foo$bar和都为true时,#if()才会输出中间内容.OR 运算例子## logical OR#if( $foo || $bar )<strong>This OR That</strong>#end$foo或$bar只要有一个为true就可以输出。
Rocktron Velocity V10 电子吉他放大器用户手册说明书

V10ELECTRIC GUITAR AMPLIFIERUser’s ManualMay be covered by one or more of the following: U.S. Patents #4538297, 4647876, 4696044, 4745309, 4881047, 4893099,5124657, 5263091, 5268527, 5319713, 5333201, 5402498 and 5493617.Other patents pending. Foreign patents pending.V elocity is a registered trademark of GHS Corporation Battle Creek MI, USAR Rocktron -A Division of GHS Corporation 2813 Wilber AvenueBattle Creek MI 49015USARocktron Phone:1-(269)-968-3351Email:*****************www Check us out on the web at:Copyright © 2006 GHS CorporationAll Rights Reserved.Power OutputSpeakersEQ Headphone Output Channels Dimensions W eight Power Requirements Fuse10 Watts 1 x 6.5” Custom V oiced V elocity Speaker by Rocktron BassTrebleOne 1/4” jackDISTORTION Switch256mm(W) x 152mm(D) x 304mm(H)10” x 6” x 12”9.9lbs (4.5KG)100 V olts AC 50/60Hz or 117 V olts AC, 60Hzor 220/240 V olts AC, 50/60Hz, as specified on chassis100-120V - use F500mA220-240V - use F300mA V10 Specifications2006-0001Rev. 8/01/06PrecautionsNOTE: IT IS VERY IMPORTANT THAT YOU READ THIS SECTION TO PROVIDEYEARS OF TROUBLE FREE USE. THIS UNIT REQUIRES CAREFUL HANDLING.•All warnings on this equipment and in the operating instructions should beadhered to and all operating instructions should be followed.•Do not use this equipment near water. Care should be taken so thatobjects do not fall and liquids are not spilled into the unit through anyopenings.•The power cord should be unplugged from the outlet when left unused fora long period of time.•Do not block any ventilation openings (if applicable). Install in accordancewith the manufacturer’s instructions.•Do not install near any heat sources such as radiators, heat registers, stovesor other apparatus (including amplifiers) that produce heat.•Only used attachments/accessories specified by the manufacturer.•Do not use this product with any case, stand tripod, bracket or table that isnot specified by the manufacturer. Insure that the case, stand, tripod,bracket etc. is properly adjusted and setup (follow all instructions). Extracare and caution should be taken to avoid tip over and injury.•Unplug this apparatus during lightning storms or when unused during longperiods of time.Refer all service to qualified service personnel. Servicing is required when the apparatus has been damaged in any way, such as power supply or plug is damaged, liquid has been spilled or objects have fallen into the apparatus or if the apparatus has been exposed to rain or moisture, does not operate normally or has been dropped.DO NOT A TTEMPT TO SERVICE THIS EQUIPMENT. THIS EQUIPMENTSHOULD BE SERVICED BY QUALIFIED PERSONNEL ONLY. DO NOT MAKEANY INTERNAL ADJUSTMENTS OR ADDITIONS TO THIS EQUIPMENT A TANY TIME. DO NOT TAMPER WITH INTERNAL ELECTRONICCOMPONENTS AT ANY TIME. FAILURE TO FOLLOW THESE INSTRUCTIONSMAY VOID THE WARRANTY OF THIS EQUIPMENT, AS WELL AS CAUSINGSHOCK HAZARD.OPERA TING TEMPERA TUREDo not expose this unit to excessive heat. This unit is designed to operate between 32° Fand 104° F (0° C and 40° C). This unit may not function properly under extremetemperatures.INPUT jackConnect the output of your guitar to the 1/4” input jack with a shielded guitar cable.DISTORTION ON/OFF ButtonThis button allows you to turn the DISTORTION “ON” or “OFF”. When the button is pressed in, the DISTORTION is “ON”. When the button is out, the DISTORTION is “OFF.”GAIN controlThis knob determines the amount of GAIN (or distortion) added to the signal when the distortion is “ON.”Turning the knob clockwise will add more GAIN to the signal. Turning the knob counter-clockwise will decrease the amount of GAIN added to the signal.VOLUME controlThis knob determines the overall VOLUME (or level) of the amplifier. Turning the knob clockwise will increase the VOLUME. Turning the knob counter-clockwise will decrease the VOLUME.BASS controlThis knob controls the overall bass of both the DISTORTION and CLEAN channels. The BASS control boosts or cuts the amount of low frequency, or bass sound in the signal.FRONT PANEL DESCRIPTIONS 12345HEADPHONE jackPlugging your headphones into this jack disconnects the sound going to the speaker and allows you to practice in private.POWER switchTurns the amp ON and OFF. When the LED is lit, the amp is on.TREBLE controlThis knob controls the overall TREBLE of both the CLEAN and DISTORTION channels. The TREBLE control boosts or cuts the amount of high frequencies present in the signal.678POWER CORDPlug the amplifier into any standard wall outlet. Please be sure to check your local wiring and voltage to make sure your amplifier is the proper voltage for your area of the world. Please follow all the precaution guidelines found in the front of this manual.BACK SIDE (not shown)DISTORTIONEQUALIZATION。
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指令来调用这个方法。
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页面客户化(个性化)非常容易。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Velocity用户指南什么是Velocity?Velocity是基于Java的模板引擎。
它允许Web页面开发者引用Java代码中定义的方法。
Web设计者可以和Java程序开发者并行开发遵循MVC模式的Web 站点。
这意味着,Web设计者可以将精力放在好的Web站点设计上,而Java 程序开发者可以将精力放在编写代码上。
Velocity将Java代码从Web页面中分离,使Web站点更具长期可维护性,并提供了一种替代JSP或PHP的方案。
VTL(Velocity Template Language)介绍VTL提供一种简单、容易和干静的方法将动态内容合并到Web页面。
VTL使用引用(references)将动态内容插入到Web页面中。
变量是一种引用,可以指向Java代码中的定义内容,或者由Web页面中的VTL语句来获得值。
下面是一个可以插入到HTML文档的VTL语句的例子:#set( $a = "Velocity" )VTL语句以#开头,并包含指令(set)。
变量以$开头,用引号引起。
引号可以是单引号,也可以是双引号。
前者引用具体的String值;后者可以包含Velocity 引用,例如”hello, $name”,$name会用其当前的值替换。
上面的例子是将值Velocity赋值给变量a。
当变量被赋值后,就可以在HTML文档的任何地方引用,下面是Hello Velocity World!的例子:<html><body>#set( $foo = "Velocity" )Hello $foo World!</body><html>注释VTL支持单行注释(以##开始)和多行注释(包括在#*和*#之间),下面是一个例子:This text is visible. ## This text is not visible.This text is visible.This text is visible. #* This text, as part of a multi-line comment,is not visible. This text is not visible; it is also part of themulti-line comment. This text still not visible. *# This text is outsidethe comment, so it is visible.## This text is not visible.引用VTL有3种类型的引用:变量、属性和方法。
作为一个设计者,必须和Java工程师在VTL引用的名称(标识符)上一致,以便在模板中使用它们。
引用是作为String对象处理的。
(1)变量变量的格式:$VTL标识符VTL标识符以字母开始,由字母、数字、横划线(-)或下划线(_)组成。
变量或者从模板中的set指令获得值(如前面的例子),或者Java代码(同名变量)中获得值。
Velocity只处理已定义的变量引用,对于没有定义的变量引用,Velocity 原样返回。
例如下面的例子:#set( $foo = "gibbous" )$moon = $foo输出结果是:$moon = gibbous(2)属性属性的格式:$VTL标识符. VTL标识符下面是属性引用的例子:$customer.Address$purchase.Total拿第一例子来说,有两种意思:●返回Hashtable对象customer中键值为Address的值●$customer.getAddress()方法引用的缩写(JavaBean属性的getter方法)至于是哪种情况,Velocity会做决定,返回合适的值。
(3)方法方法的格式:$VTL标识符(参数列表)下面是方法引用的例子:$customer.getAddress()$purchase.getTotal()$page.setTitle( "My Home Page" )$person.setAttributes( ["Strange", "Weird", "Excited"] )前面两个例子可以缩写成属性引用(如属性引用的例子)。
属性引用和方法引用的主要区别是方法引用可以指定参数列表。
(4)正式引用符号:{}正式引用符号在使用变量引用含糊的地方进行区分。
看下面的例子:#set( $vice = "klepto" )Jack is a $vicemaniac.输出结果是:Jack is a $vicemaniac.($vicemaniac没有定义,原样输出)#set( $vice = "klepto" )Jack is a ${vice}maniac.输出结果是:Jack is a kleptomaniac.(使用正式引用符号将$vice和其它文本区分开)(5)Quit引用符号:!看下面的例子:<input type="text" name="email" value="$email"/>初始时,$email没有值,所以文本框中会显示值$email,而更希望是空白。
下面是使用Quit引用符号的例子:<input type="text" name="email" value="$!email"/>当$email没有值时,Velocity会用空串替代$email。
(6)特殊字符转义对于$、#等特殊字符要正常显示,可以使用\进行转义,\\转义为\。
下面是一个例子:#set( $email = "foo" )$email\$email\\$email\\\$email输出结果是:foo$email\foo\$email指令(Directives)引用允许模板设计者为Web站点生成动态内容,而指令使巧妙处理Java代码的脚本元素容易使用。
(1)#set格式:#set( LHS = RHS )●LHS可以是变量引用或属性引用●RHS可以是引用、字符串、数字、ArrayList或Map下面的例子展示了上面的每种RHS类型:#set( $monkey = $bill ) ## variable reference#set( $monkey.Friend = "monica" ) ## string literal#set( $monkey.Blame = $whitehouse.Leak ) ## property reference#set( $monkey.Plan = $spindoctor.weave($web) ) ## method reference #set( $monkey.Number = 123 ) ##number literal#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList#set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"}) ## Map 对于ArrayList和Map,可以使用对应的Java方法访问其中的元素值:$monkey.Say.get(0)$monkey.Map.get("bannana")$monkey.Map.banana ## same as above●RHS可以是简单的算术表达式#set( $value = $foo + 1 ) ## Addition#set( $value = $bar - 1 ) ## Subtraction#set( $value = $foo * $bar ) ## Multiplication#set( $value = $foo / $bar ) ## Division#set( $value = $foo % $bar ) ## Remainder算术表达式只支持整型。
/的结果为整数;如果非整型数值,返回null●如果RHS的结果为null,是不会赋值给LHS的看下面的例子:#set( $criteria = ["name", "address"] )#foreach( $criterion in $criteria )#set( $result = $query.criteria($criterion) )#if( $result )Query was successful#end#end上面使用$result检查是否执行成功是有问题的。
如果第一次执行成功,$result不为null,则后面的执行不管是否成功,检查条件总是成立。
改进的方法是在每次执行前初始化为false:#set( $criteria = ["name", "address"] )#foreach( $criterion in $criteria )#set( $result = false )#set( $result = $query.criteria($criterion) )#if( $result )Query was successful#end#end●String文字可以使用双引号或单引号括起。
两者的主要区别是双引号中的引用会替换成相应的值,而单引号中的引用原样输出#set( $directoryRoot = "www" )#set( $templateName = "index.vm" )#set( $template = "$directoryRoot/$templateName" )$template输出结果是:www/index.vm如果使用单引号:#set( $template = '$directoryRoot/$templateName’ )输出结果是:$directoryRoot/$templateName●使用双引号可以实现字符串的串联,如下面的例子:#set( $size = "Big" )#set( $name = "Ben" )#set($clock = "${size}Tall$name" )The clock is $clock.(2)#if / #elseif / #else#if指令在条件成立时,显示#if和#end之间的内容,否则显示#else和#end之间的内容。