Velocity教程
velocity快速入门
velocity快速⼊门1.velocity简介 velocity是⼀个基于Java的模板引擎,可以通过特定的语法获取在Java对象的数据,填充到模板中,从⽽实现界⾯和Java代码的分离。
这意味着可以使⽤velocity替代jsp的开发模式了,这使得前端开发⼈员可以和 Java 程序开发⼈员同步开发⼀个遵循 MVC 架构的 web 站点,在实际应⽤中,velocity还可以应⽤于很多其他的场景。
2.应⽤场景web应⽤程序:作为应⽤程序的视图,展⽰数据。
源代码⽣成:velocity可⽤于基于模板⽣成Java源代码。
⾃动电⼦邮件:⽹站注册,认证等的电⼦邮件模板。
⽹页静态化:基于velocity模板,⽣成静态⽹页。
3.velocity组成结构velocity主要分为app、context、runtime和⼀些辅助util⼏个部分app模块:主要封装了⼀些接⼝,暴露给使⽤者使⽤,主要有两个类,分别是Velocity(单例)和VelocityEnginecontext模块:主要封装了模板渲染需要的变量runtime模块:整个velocity的核⼼模块,runtime模块会将加载的模块解析成语法树,velocity调⽤mergeTemplate⽅法时会渲染整棵树,并输出最终的渲染结果runtimeInstance类为整个velocity渲染提供了⼀个单例模式,拿到了这个实例就可以完成渲染过程了4.快速⼊门4.1 需求分析使⽤velocity定义HTML模板,将动态数据填充到模板中,形成⼀个完整的HTML页⾯4.2 步骤分析(1)创建项⽬(2)引⼊依赖(3)定义模板(4)输出html4.3 velocity⼊门程序创建maven项⽬,然后引⼊如下依赖<!--velocity--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency>在templates⽬录下新建⼀个模板⽂件 demo1.vm,内容如下:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>hello,${name}!</body></html>编写测试类,使⽤velocity⽣成html⽂件@Testpublic void test1() throws IOException {// 1.设置velocity的资源加载器Properties properties=new Properties();properties.put("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");// 2.初始化velocity引擎Velocity.init(properties);// 3.创建velocity容器VelocityContext context=new VelocityContext();context.put("name","张三");// 4.加载模板⽂件Template template = Velocity.getTemplate("templates\\demo1.vm", "utf-8");// 5.合并数据到模板FileWriter fw=new FileWriter("D:\\idea_code\\cat-movie-main\\cat-movie-main\\movie-server\\src\\main\\resources\\static\\demo1.html");template.merge(context,fw);// 6.释放资源fw.close();}执⾏单元测试,就可以看到static⽬录下⽣成了demo1.html,并且数据显⽰<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>hello,张三!</body></html>5.基础语法5.1 VTL介绍Velocity Template Language(VTL),是velocity中提供的⼀种模板语⾔,旨在提供最简单和最⼲净的⽅法来将动态内容合并到⽹页中,简单来说VTL可以将程序的动态数展⽰到⽹页中。
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用户指南什么是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种类型的引用:变量、属性和方法。
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页面的客户化工作非常容易。
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指令来调用这个方法。
java模板引擎velocity 方法
java模板引擎velocity 方法【实用版4篇】目录(篇1)1.Java 模板引擎 Velocity 简介2.Velocity 的使用方法3.Velocity 的基本语法4.Velocity 的优点与局限性正文(篇1)一、Java 模板引擎 Velocity 简介Java 模板引擎 Velocity 是一款基于 Java 的模板引擎,它可以帮助开发者简化代码编写,提高工作效率。
Velocity 允许用户将输出结果与数据分离,通过定义模板和提供数据,可以生成各种格式的文档。
它具有很强的扩展性,可以轻松地与其他 Java 框架集成。
二、Velocity 的使用方法1.添加 Velocity 依赖在项目中使用 Velocity,首先需要将 Velocity 的依赖添加到项目中。
对于 Maven 项目,可以在 pom.xml 文件中添加以下依赖:```xml<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>2.0</version></dependency>```2.创建 Velocity 配置在项目中创建一个 Velocity 配置类,用于配置 Velocity 的属性。
例如:```javaimport org.apache.velocity.app.Velocity;import org.apache.velocity.context.Context;import org.apache.velocity.runtime.RuntimeConstants;import org.apache.velocity.runtime.RuntimeServices;public class VelocityConfig {public static Velocity getVelocityInstance() {Velocity velocity = new Velocity();velocity.setProperty(RuntimeConstants.RUNTIME_LOG_LEVEL, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_LOG_PATH,"/tmp/velocity.log");velocity.setProperty(RuntimeConstants.RUNTIME_DIRECTIVE_LOG_LEV EL, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_DIRECTIVE_LOG_PAT H, "/tmp/directive.log");velocity.setProperty(RuntimeConstants.RUNTIME_CHAIN_LOG_LEVEL, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_CHAIN_LOG_PATH, "/tmp/chain.log");velocity.setProperty(RuntimeConstants.RUNTIME_TEMPLATE_LOG_LEVE L, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_TEMPLATE_LOG_PATH, "/tmp/template.log");velocity.setProperty(RuntimeConstants.RUNTIME_STATIC_LOG_LEVEL, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_STATIC_LOG_PATH, "/tmp/static.log");velocity.setProperty(RuntimeConstants.RUNTIME_FILE_LOG_LEVEL, "WARN");velocity.setProperty(RuntimeConstants.RUNTIME_FILE_LOG_PATH,"/tmp/file.log");velocity.setProperty(RuntimeConstants.RUNTIME_LOG_IGNORE_CASE, "true");velocity.setProperty(RuntimeConstants.RUNTIME_LOG_ENABLED, "true");velocity.setProperty(RuntimeConstants.RUNTIME_DIRECTIVE_ENABLED, "true");velocity.setProperty(RuntimeConstants.RUNTIME_TEMPLATE_ENGINE_E NABLED, "true");velocity.setProperty(RuntimeConstants.RUNTIME_STATIC_ENGINE_ENA BLED, "true");velocity.setProperty(RuntimeConstants.RUNTIME_FILE_ENGINE_ENABL ED, "true");return velocity;}}```3.创建 Velocity 模板在项目中创建一个 Velocity 模板文件,例如:test.vm。
java模板引擎velocity 方法
一、什么是Java模板引擎Velocity?Java模板引擎Velocity是一种用于动态生成文本的工具,它能够通过预定义的模板和数据生成所需的文本。
它是Apache软件基金会的一个开源项目,因其灵活性和高效性而得到了广泛的应用。
二、Velocity的基本用法1. 引入Velocity库要使用Velocity,首先需要在项目中引入Velocity库。
可以通过Maven或手动下载并导入jar包的方式将Velocity集成到项目中。
2. 创建模板文件在使用Velocity时,需要预先创建模板文件,模板文件中可以包含一些占位符和逻辑控制代码,用来指示Velocity填充内容或执行相应的逻辑。
3. 创建模板上下文在Java代码中,需要创建一个模板上下文对象,该对象用于存储模板中需要填充的数据。
4. 渲染模板通过Velocity引擎的渲染方法,将模板文件和模板上下文传入,即可生成最终的文本内容。
五、Velocity的高级用法1. 模板继承Velocity支持模板继承的功能,可以在模板中定义块,然后在子模板中重写这些块的内容。
2. 自定义指令Velocity允许用户自定义指令,以满足特定的需求。
通过编写自定义指令的代码,可以扩展Velocity的功能。
3. 工具类集成Velocity本身并不包含太多实用的工具类,但它可以和一些常用的工具类集成,比如Apache Commons和Guava等,以提高模板中逻辑控制的灵活性和便利性。
六、Velocity的优缺点1. 优点(1)简单易学:Velocity的语法简单易懂,很容易上手。
(2)高效灵活:Velocity能够高效地生成文本,并且支持高度的灵活定制。
(3)可扩展性强:Velocity支持自定义指令,可以满足各种复杂的需求。
2. 缺点(1)性能一般:相比一些新的模板引擎,Velocity的性能并不算太突出。
(2)社区活跃度不高:作为一个老牌的模板引擎,Velocity的社区活跃度已经不如以前,新功能和bug修复相对较慢。
unity中velocity用法
unity中velocity用法Unity中的velocity用法Velocity是Unity中一个非常重要的属性,它可以用于控制物体在三维空间中的运动速度和方向。
在游戏开发中,我们经常需要使用velocity来实现各种物体的运动效果,比如玩家角色的移动、敌人的追逐等。
在本文中,我们将一步一步地回答关于Unity中velocity的用法和使用技巧。
一、Velocity的基本概念在物理学中,Velocity(速度)是一个矢量量,表示物体在单位时间内的位移。
在Unity中,Velocity也是一个矢量量,它用来表示物体在三维空间中的运动速度和方向。
在Rigidbody组件中,velocity属性可以用来直接修改物体的速度和方向。
Velocity是一个三维向量,可以通过Vector3类型来表示。
在Unity中,我们可以使用Vector3的各种方法和属性来控制和操作velocity。
二、Velocity的基本使用方法要使用velocity控制物体的运动,首先需要在物体上添加Rigidbody组件。
Rigidbody是一个物理组件,可以用来实现物体的真实运动效果。
在Rigidbody组件中,有一个velocity属性,用于控制物体的速度。
csharppublic Rigidbody rb;void Start(){rb = GetComponent<Rigidbody>();}void Update(){rb.velocity = new Vector3(2, 0, 0); 将物体的速度设置为(2, 0, 0) }在上面的例子中,我们首先在Start方法中获取物体上的Rigidbody组件,然后在Update方法中通过设置rb.velocity属性,将物体的速度设置为(2, 0, 0)。
这样物体就会以每秒2个单位长度的速度,向x轴正方向移动。
需要注意的是,物体的速度是以每秒钟移动的距离来表示的。
使用velocity(agree)
第1章第一个VELOCITY程序Velocity工程首页Eclipse建立工程,导入velocity的jar,新建FirstExample.java,输入如下代码public class FirstExample{public static void main(String[] args) throws Exception{Velocity.init();VelocityContext context = new VelocityContext();context.put( "name", new String("卢斌晖"));context.put("dream","做有钱佬");Template template = null;try{template = Velocity.getTemplate("FirstExample.vm","UTF-8");}catch( ResourceNotFoundException rnfe ){System.out.println("couldn't find the template");}catch( ParseErrorException pee ){}catch( MethodInvocationException mie ){}catch( Exception e ){}StringWriter sw = new StringWriter();template.merge( context, sw );System.out.println(sw);- 1 -}}在src根目录建立velocity模版文件FirstExample.vm,将编码改为UTF-8。
输入如下代码:―――――――――――――――――――――――#set( $unitName = "中教科技" )#set( $dept = '研发部')我叫$name,好高兴见到你。
Velocity软件使用说明bak
Velocity汉化步骤首先确认Velocity2.0门禁系统软件已经安装完毕。
1、将Customs.cst文件复制到C:\Programs Files\Hirschelectronics\Velocity目录下。
2、点击“开始”\“程序”\Hirsch Electronics Velocity\Velocity键,进入软件中。
3、点击Files\Import\Export\Customsation进入汉化文件导入界面,点击“Next”后选择“Import”进行汉化。
4、第3步完成后,点击“Console”目录下的最后一项“参数选择”,将“概要”中第2项打上“√”。
5、第4步完成后,在计算机屏幕右下角用右键点击“Services”\Setting,同样将“Database”中第2项打上“√”。
6、以上步骤完成后,退出软件,重新启动计算机进入Velocity软件。
软件使用说明1、首先确认系统硬件已经和计算机连接完毕(计算机通过Com口与控制器通讯)。
设置端口2、打开Velocity软件,在配置\DIGI*TRAC配置\SNET点击增加新SNET端口,在名称处给该端口一个新名称(一般设为Com1),然后在端口配置中选择波特率(一般选9600)和端口,然后点确认键完成该端口的添加。
添加控制器3、端口增加完毕后,点击该端口并继续点击增加新控制器,在新控制器属性界面内名称处给控制器设定一个新名称;在地址处给该控制器设定地址(控制器内的地址拨码开关是几则在该处就设定几);在型号处给该控制器设定型号(根据添加该控制器的具体型号而定,如2门控制器为M2、8门控制器为M8);在控制器时区处选择中国,其余均为默认值,点击确认键完成该控制器的添加。
门属性设置4、以8门控制器为例:控制器添加完毕后,点击该控制器并继续点击门,出现了Door1~Door8,双击Door1,在Door1的属性界面内点击报警输入,在设置界面内的报警模块处选择模块类型(一般默认值为DTLM2\MELM2),将出门按钮选中,选择触发继电器并屏蔽报警;其余均为默认值,点击确认键完成该Door1的设置。
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初始化过程解析
Velocity初始化过程解析Velocity是一个表示层的模板框架,作为jsp的替代者,有着很多优势。
小巧方便,不必使用el或者其他表示层技术来展示页面,感觉是一个很新颖的技术。
Velocity作为MVC框架中的V存在,和普通jsp页面有着不同,它是一种template引擎,利用先编辑完的格式来作为大纲,把一些需要变化的地方作为参数传入,显示时将模板和参数合并,达到最终输出的样子。
本文使用目前最新的velocity1.6.2.jar包进行解析。
最根本的velocity就是由template,engine,context组成。
1、首先创建一个template(如果是用在web上就是一个html文件),将需要参数化或实例化的地方用跟context有关的符号标记出来,标记时使用velocity template language。
而template应该可以是任意的文本。
2、给context设定一些值,这些值用来替换在template中被标记的地方。
3、利用engine将template中需要替换的地方用context中的值替换掉,也就是所谓的merge,从而得到该模板的实例。
简单的用java代码来输出就是:VelocityEngine velocity = new VelocityEngine();VelocityContext context = new VelocityContext();context.put("name", "czy");Template template = velocity.getTemplate("/src/main/resources/test.vm"); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));template.merge(context, writer);writer.flush();writer.close();至于我们为什么使用VelocityEngine 而不是使用Velocity类,或者说两者有什么区别,请看《VelocityEngine 和Velocity类解析》我们假设使用普通的velocityEngine来作为引擎,来进入初始化的过程。
Velocity VTL入门介绍
velocity简介(二)
• Velocity可以和Struts,webwork等结合使用,我 们主要是和WEBWORK结合使用! • 使用步骤:1、加入包velocity-1.6.2.jar velocity-tools-1.4.jar commons-long-2.2.jar 2、 页面使用VTL写3、action中写对应的get方法 4 、将xwork.xml中的result的type属性改为 velocity
使用宏,注意事项
• Velocimacro必须被定义在他们被使用之前。也 就是说,你的#macro()声明应该出现在使用 Velocimacros之前。 • 特别要注意的是,如果你试图#parse()一个包 含#macro()的模板。因为#parse()发生在运行期, 但是解析器在parsetiem决定一个看似VM元素 的元素是否是一个VM元素,这样#parse()-ing 一组VM声明将不按照预期的样子工作。为了 得到预期的结果,只需要你简单的使用 velocimacro.library使得 Velocity在启动时加载你的VMs。
VTL指令
• • • • • • • 声明, #set 条件, #if( ) #elseif() #else #end 循环, #foreach 引入, #include 包含, #parse 停止执行并返回, #stop 宏,#macro
VTL指令--声明
• #set ($var=XXX) 左侧(var)必须是变量或属性; 右侧可以是: a. 变量的引用(reference) b. String类型 c. 属性的引用(reference) d. 方法的引用(reference) e. number类型 f. ArrayList g.MAP h.支持算术运算 • 右侧为空的特殊处理 “ ”和’ ’ 的区别
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:
Velocity学习手册
Velocity学习手册velocity学习手册01 一个完整的 velocity 应用包含三个文件:01 属性文件(.properties);02 模板文件(.vm);03 java解释文件(.java);02 velocity 整体编程流程(针对客户端):01 加载属性文件:Velocity.init("velocity.properties");或使用默认值:Velocity.init();02 获取上下文环境:VelocityContext context = new VelocityContext();03 向上下文环境中添加变量引用:context.put("list", getNames());04 获得一个输出流:BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));05 根据模板文件获取模板对象:Template template = Velocity.getTemplate(templateFile);06 将模板上下文环境和输出流合并:if ( template != null)template.merge(context, writer);07 输出数据并关闭输出流:writer.flush();writer.close();注:01 04-06 这三步的实质是根据已有的模板文件生成模板对象并和输出流合并,获得最终的数据输出,也可以这样写:StringWriter w = new StringWriter();Velocity.mergeTemplate("example2.vm", context, w );System.out.println(" template : " + w );02 模板文件可以动态的生成,保存在字符串中,针对 04-06 步改动如下:String s = "We are using $project $name to render this.";StringWriter w = new StringWriter();Velocity.evaluate( context, w, "mystring", s );System.out.println(" string : " + w );03 velocity 整体编程流程(针对Servlet):01 继承基础类:public class SampleServlet extends VelocityServlet02 加载配置文件,这个方法会在VelocityServlet 的初试化方法init() 中被调用:protected Properties loadConfiguration(ServletConfig config )throws IOException, FileNotFoundException{Properties p = new Properties();//===================================== =======================[通过程序设置] 01 设置(模板)文件资源的加载路径:String path = config.getServletContext().getRealPath("/");if (path == null){path = "/";}p.setProperty( Velocity.FILE_RESOURCE_LOADER_PATH,path );02 设置 velocity 日志的输出路径(这是动态的设置):p.setProperty( "runtime.log", path + "velocity.log" );//===================================== =======================[通过配置文件] 01 获取初试化配置文件的位置(通过 Servlet 的初始化参数);SampleServlet 在部属描述文件中的参数“properties”就对应着 VelocityServlet 中的“INIT_PROPS_KEY”参数;String propsFile = config.getInitParameter(INIT_PROPS_KEY);02 加载属性文件;if ( propsFile != null ){String realPath = getServletContext().getRealPath(propsFile);if ( realPath != null ){propsFile = realPath;}p.load( new FileInputStream(propsFile) );}03 修改 velocity 日志属性;String log = p.getProperty( Velocity.RUNTIME_LOG);if (log != null ){log = getServletContext().getRealPath( log );if (log != null){p.setProperty( Velocity.RUNTIME_LOG, log );}}04 修改(模板)文件资源的加载路径;String path = p.getProperty( Velocity.FILE_RESOURCE_LOADER_PATH); if (path != null ){path = getServletContext().getRealPath( path );if (path != null){p.setProperty( Velocity.FILE_RESOURCE_LOADER_PATH,path ); }}//===================================== ======================= 返回属性文件;return p;}03 处理过程:public Template handleRequest( HttpServletRequest request,HttpServletResponse response, Context ctx ){01 向上下文环境中添加数据:ctx.put("theList", personList );02 生成模板文件:Template template = getTemplate("sample.vm");03 返回:return template;}。
Velocity官方指南
Velocity官方指南-使用Velocity如果你使用的是VelocityViewServlet或者其他的web框架,你不会直接调用到Velocity。
但是,如果在非web的应用中或者自己编写的web框架时,你将会像上面说的基本流程一样直接调用到Velocity 引擎。
另外一个需要记住的重点是,必须在使用Velocity合并模版之前,初始化Velocity引擎。
Velocity辅助类Velocity中包含一个叫做Velocity( org.apache.velocity.app.Velocity )的应用工具类。
这个类的主要是提供一些初始化Velocity时必须的方法,以及简化Velocity使用的一些常规方法。
这个在工程的javadoc中有描述,可通过阅读javadoc来获取更详细的说明。
本篇文档只是教程;所以,如果需要了解完整的API信息,javadoc是你最好的选择。
Velocity运行时引擎是为在同一个jvm中的其他使用者提供资源获取,日志记录等其他服务的单个实例。
因此,运行时引擎只会初始化一次。
你可以尝试初始化多次,但是只有第一次是有效的,后面的初始化操作都会被忽略。
Velocity工具类提供了五个用来配置运行时引擎的方法。
这五个配置方法如下:∙setProperty( String key, Object o )设置属性键key对应属性值为o。
值通常为字符串,在特殊情况下也可以是逗号分隔的一串值(如”foo,bar,woogie”),当然也可以其他值。
∙Object getProperty( String key )获取属性键key对应的值。
需要注意的是返回值的类型,不仅仅只是字符串类型∙init()使用jar包中的默认properties文件中配置的属性初始化运行时引擎∙init(Properties p)使用类型为java.util.Properties参数出入的属性来初始化运行时引擎∙init( String filename )使用文件名为filename的properties文件中的属性值初始化运行时引擎需要注意的是,在上面的这五个方法中,默认的properties是基础的配置,额外的properties是用来替换默认配置中对应的属性。
Velocity标准化教程
Match symbols on cables to symbols on front of
23
Amplifier
放大器连接
● 每个模块连接都用颜色进 行编码。
● 每条缆线上都有特殊图标
培 训
可以和放大器上的接口端
部 一一对应,方便用户进行
连接。
● 连接任何缆线只需把标记 向上然后直接推入,如果 不是缆线所对应的接口是 无法连接的。
11
“新 BOB” 模块
● BOB组件在这一代系统就 不存在了,其功能被分割为 不同的小型硬件模块
● 这些模块既可以放在导管床 培 旁也可以直接放置在床上
训
部 ● 这些模块的连接缆线比原来 的BOB缆线要细的多,这 样会大大减少噪音干扰
12
导管连接模块(CathLink)
● 该模块用于没有合适的多导连接模块时连接导管尾线
培 训 部
27
EnSite连接示意图
● 这就取消了体表图分线器。 培 ● 当使用 CathLink 模块, ECG 连线需要连接在放大器前面。
训 部
17
多导连接(RecordConnect )模块
● 不同的多导记录系统需要通过不同的多导连接模块 (RecordConnect)与 EnSite Velocity 连接。
● 不同的RecordConnects 模块可以与 GE Cardiolab, Bard , SJM EP-WorkMate 和 Siemens 多导系统连接。
默认低通设置为100Hz –150Hz.
培 训
这有助于减少 NavX 和 Array定
部
位信号引起的噪音。
● 无论导航多少个电极,Array 的定位信号保持在 200Hz 。
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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Velocity教程关键字: velocity教程Velocity是一个基于java的模板引擎(template engine)。
它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。
Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。
官方网站:/velocity/Velocity脚本摘要1、声明:#set ($var=XXX)左边可以是以下的内容Variable referenceString literalProperty referenceMethod referenceNumber literal #set ($i=1)ArrayList #set ($arr=["yt1","t2"])技持算术运算符2、注释:单行## XXX多行#* xxxxxxxxxxxxxxxxxxx*#References 引用的类型3、变量Variables以"$" 开头,第一个字符必须为字母。
character followed by a VTL Identifier. (a .. zor A .. Z).变量可以包含的字符有以下内容:alphabetic (a .. z, A .. Z)numeric (0 .. 9)hyphen ("-")underscore ("_")4、Properties$Identifier.Identifier$hashtable user中的的name值.类似:user.get("name")5、Methodsobject user.getName() = $user.getName()6、Formal Reference Notation用{}把变量名跟字符串分开如#set ($user="csy"}${user}name返回csyname$username$!username$与$!的区别当找不到username的时候,$username返回字符串"$username",而$!username返回空字符串""7、双引号与引号#set ($var="helo")test"$var" 返回testhellotest'$var' 返回test'$var'可以通过设置stringliterals.interpolate=false改变默认处理方式8、条件语句#if( $foo )<strong>Velocity!</strong>#end#if($foo)#elseif()#else#end当$foo为null或为Boolean对象的false值执行.9、逻辑运算符:== && || !10、循环语句#foreach($var in $arrays ) // 集合包含下面三种Vector, a Hashtable or an Array #end#foreach( $product in $allProducts )<li>$product</li>#end#foreach( $key in $allProducts.keySet() )<li>Key: $key -> Value: $allProducts.get($key)</li>#end#foreach( $customer in $customerList )<tr><td>$velocityCount</td><td>$</td></tr> #end11、velocityCount变量在配置文件中定义# Default name of the loop counter# variable reference. = velocityCount# Default starting value of the loop# counter variable reference.directive.foreach.counter.initial.value = 112、包含文件#include( "one.gif","two.txt","three.htm" )13、Parse导入脚本#parse("me.vm" )14、#stop 停止执行并返回15、定义宏Velocimacros ,相当于函数支持包含功能#macro( d )<tr><td></td></tr>#end调用#d()16、带参数的宏#macro( tablerows $color $somelist )#foreach( $something in $somelist )<tr><td bgcolor=$color>$something</td></tr>#end#end17、Range Operator#foreach( $foo in [1..5] )Velocity用户手册---中文版(来源网络)Velocity是什么?Velocity是一个基于java的模板引擎(template engine)。
它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
当V elocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。
Velocity将java代码从web页面中分离出来,这样为web 站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL 和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。
Velocity也可以为Turbine web开发架构提供模板服务(template service)。
Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。
Velocity能为我们作什么?The Mud Store ExampleVelocity使得web页面的客户化工作非常容易。
作为一个web site的设计人员,你希望每个用户登陆时都拥有自己的页面。
你会见了一些公司内的软件工程师,你发现他们每个人都同意客户应该拥有具有个性化的信息。
那让我们把软件工程师应该作的事情发在一边,看一看你应该作些什么吧。
你可能在页面内嵌套如下的VTL声明:<html><body>Hello $!<table>#foreach( $mud in $nudsOnSpecial )#if ( $customer.hasPurchased( $mud ) )<tr><td>$flogger.getPromo( $mud )</td></tr>#end#end</table>Velocity Template Language(VTL):AN introductionVTL意味着提供最简单、最容易并且最整洁的方式合并页面动态内容。
VTL使用references来在web site内嵌套动态内容,一个变量就是一种类型的reference。
变量是某种类型的refreence,它可以指向java代码中的定义,或者从当前页面内定义的VTL statement得到值。
下面是一个VTL statement的例子,它可以被嵌套到HTML代码中:#set ( $a = “Velocity” )和所有的VTL statement一样,这个statement以#字符开始并且包含一个directive:set。
当一个在线用户请求你的页面时,Velocity Templating Engine将查询整个页面以便发现所有#字符,然后确定哪些是VTL statement,哪些不需要VTL作任何事情。
#字符后紧跟一个directive:set时,这个set directive使用一个表达式(使用括号封闭)――一个方程式分配一个值给变量。
变量被列在左边,而它的值被列在右边,最后他们之间使用=号分割。
在上面的例子中,变量是$a,而它的值是Velocity。
和其他的references一样以$字符开始,而值总是以双引号封闭。
V elocity中仅有String可以被赋值给变量。
记住以下的规则:使用$字符开始的references用于得到什么;使用#字符开始的directives用于作些什么。
Hello Velocity World!一旦某个变量被分配了一个值,那么你就可以在HTML文件的任何地方引用它。
在下面的例子中,一个值被分配给$foo变量,并在其后被引用。
<html><body>#set ( $foo = “Velocity” )Hello $foo World!</body></html>上面的实现结果是在页面上打印“Hello Velocity World!”为了使包含VTL directives的statement更具有可读性,我们鼓励你在新行开始每个VTL statement,尽管你不是必须这么作。
Set directive将在后面详细描述。
注释单行注释:## This is a single line comment.多行注释:#*Thus begins a multi-line comment. Online visitors won'tsee this text because the V elocity Templating Engine willignore it.*#文档格式:#**This is a VTL comment block andmay be used to store such informationas the document author and versioninginformation:@version 5@author*#References在VTL中有三种类型的references:变量(variables)、属性(properties)、方法(methods)。