velocity入门使用教程

合集下载

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模板引擎

velocity模板引擎

velocity模板引擎Velocity模板引擎是一种用于动态生成文本输出的模板引擎,它广泛应用于各种Java Web开发框架中,如Struts、Spring MVC等。

Velocity模板引擎的主要作用是将模板文件中的静态文本与动态数据进行结合,生成最终的文本输出。

在本文档中,我们将详细介绍Velocity模板引擎的基本用法、语法特点以及在实际项目中的应用。

一、基本用法。

1. 引入Velocity模板引擎库。

在使用Velocity模板引擎之前,首先需要在项目中引入相应的Velocity库文件。

通常情况下,我们可以通过Maven或手动下载jar包的方式将Velocity库文件引入到项目中。

2. 创建Velocity模板。

接下来,我们需要创建Velocity模板文件,通常以.vm为后缀。

在模板文件中,我们可以使用Velocity提供的语法来插入动态数据、控制流程、定义变量等。

3. 准备数据模型。

在生成输出之前,我们需要准备好动态数据模型。

这些数据通常以Java对象的形式存在,可以是POJO、Map、List等类型的数据。

4. 合并模板与数据模型。

最后一步是将准备好的数据模型与Velocity模板进行合并,生成最终的文本输出。

Velocity模板引擎会根据模板文件中的语法和动态数据模型生成最终的文本输出结果。

二、语法特点。

1. 变量插值。

在Velocity模板中,我们可以使用$符号来引用变量,例如$foo。

当模板引擎解析模板时,会将$foo替换为实际的变量值。

2. 控制指令。

Velocity模板引擎提供了丰富的控制指令,如if-else、foreach等,可以用于控制模板中的流程和逻辑。

3. 宏定义。

通过宏定义,我们可以在模板中定义和复用一些常用的模板片段,提高模板的复用性和可维护性。

4. 工具类。

Velocity模板引擎还提供了一些内置的工具类和方法,用于处理字符串、日期、数学运算等常见的操作。

三、实际应用。

velocity startwith方法

velocity startwith方法

velocity startwith方法Velocity是一种模板引擎,被广泛应用于Java开发领域。

在Velocity中,startWith方法是一种用于判断字符串是否以指定前缀开始的方法。

本文将介绍Velocity中的startWith方法的使用方法和注意事项。

我们需要了解Velocity的基本用法和语法。

Velocity的模板文件通常以.vm为后缀,其中包含了静态文本和Velocity的语法标记。

Velocity模板中的语法标记以$或#开头,用于表示变量或指令。

在模板中使用startWith方法可以判断字符串是否以指定前缀开始。

在使用startWith方法时,我们需要使用Velocity的语法标记将字符串包裹起来,并使用#if指令进行判断。

具体的语法如下所示:```#set($string = "Hello World")#if($string.startsWith("Hello"))<p>字符串以Hello开头</p>#else<p>字符串不以Hello开头</p>#end```在上述示例中,我们定义了一个字符串变量$string,并使用startsWith方法判断该字符串是否以Hello开头。

如果是,则输出"字符串以Hello开头",否则输出"字符串不以Hello开头"。

需要注意的是,startWith方法是区分大小写的,即"Hello"和"hello"被视为不同的字符串。

如果我们希望不区分大小写地进行判断,可以使用toLowerCase方法将字符串转换为小写后再进行比较。

startWith方法还可以与其他条件判断语句结合使用,例如结合#foreach指令遍历一个字符串列表,判断每个字符串是否以指定前缀开始。

示例如下:```#set($strings = ["Hello World", "Velocity", "StartWith"])#foreach($string in $strings)#if($string.startsWith("Hello"))<p>$string 以Hello开头</p>#else<p>$string 不以Hello开头</p>#end#end```在上述示例中,我们定义了一个字符串列表$strings,并使用#foreach指令遍历列表中的每个字符串。

velocity模板

velocity模板

velocity模板Velocity模板。

Velocity是一种用于生成文本输出的模板语言,它可以用于生成HTML、XML、JSON等各种文档格式。

Velocity模板可以帮助开发人员将数据和模板进行分离,提高了代码的可维护性和可读性。

本文将介绍Velocity模板的基本语法和常见用法,希望能够帮助大家更好地理解和使用Velocity模板。

1. 变量定义和输出。

在Velocity模板中,可以使用$符号来引用变量,变量的定义和赋值使用#set指令。

例如:```。

#set($name = "Velocity")。

Welcome to $name!```。

上面的例子中,我们定义了一个名为name的变量,并将其赋值为"Velocity",然后通过$name来引用这个变量。

在模板输出中,$name会被替换为实际的数值,输出结果为:```。

Welcome to Velocity!```。

2. 条件判断。

Velocity模板中的条件判断使用#if指令。

例如:```。

#set($score = 85)。

#if($score >= 60)。

You have passed the exam.#else。

You have failed the exam.#end。

```。

在上面的例子中,我们定义了一个名为score的变量,并根据其数值进行条件判断。

如果score大于等于60,则输出"You have passed the exam.",否则输出"You have failed the exam."。

3. 循环。

Velocity模板中的循环使用#foreach指令。

例如:```。

#set($list = ["apple", "banana", "orange"])。

#foreach($item in $list)。

velocity模板引擎 调用java方法

velocity模板引擎 调用java方法

velocity模板引擎调用java方法
在Velocity模板引擎中,你可以通过以下步骤调用Java方法:
1、首先,确保你的Java类和方法已经被正确地引入到Velocity模板中。

你可以使用#set指令将Java对象添加到模板的上下文中,然后使用#foreach指令遍历对象中的属性。

2、在模板中,你可以使用$符号来访问上下文中的Java对象和属性。

例如,如果你要调用一个名为myMethod的Java方法,你可以使用以下语法:java
myObject.myMethod()
其中,myObject是Java对象的名称,myMethod是你要调用的方法的名称。

3、如果你要传递参数给Java方法,可以在方法名称后面加上括号,并在括号内使用逗号分隔参数列表。

例如:
java
myObject.myMethod($param1, $param2)
其中,$param1和$param2是你要传递给方法的参数。

4、确保你的Java方法能够正确处理和返回值。

如果方法需要返回值,你可以在模板中使用#set指令将返回值存储在一个变量中,然后使用该变量进行后续操作。

例如:
java
set($result = $myObject.myMethod($param1, $param2))
result
这将调用myMethod方法并将返回值存储在名为result的变量中,然后你可以在模板中使用该变量。

请注意,上述示例中的语法假设你的Velocity模板引擎配置正确,并且你的Java 类和方法可以在模板中被正确地引用和使用。

Velocity教程

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 直接返回对象结果。

java模板引擎velocity 方法

java模板引擎velocity 方法

java模板引擎velocity 方法Velocity是一种基于Java的模板引擎,它以其强大灵活的功能在Java开发中被广泛应用。

本文将介绍Velocity模板引擎的方法,包括模板语法、变量引用、条件判断、循环控制以及自定义指令。

模板语法:Velocity模板使用简洁而灵活的语法,允许将静态的模板与动态的数据结合,生成最终的输出。

1. 变量引用:在Velocity模板中,可以通过使用`${}`语法来引用变量。

变量可以是一般的Java对象或者是Velocity上下文中设置的变量。

2. 简单示例:以下是一个简单的Velocity模板示例,展示了如何引用变量:```<html><head><title>${title}</title></head><body><h1>Welcome, ${name}!</h1></body></html>在这个示例中,`${title}`和`${name}`分别引用了两个变量,通过将这些变量与具体的值进行绑定,可以生成最终的HTML输出。

3. 条件判断:Velocity模板引擎也支持简单的条件判断,可以根据条件的真假来控制模板输出的内容。

下面是一个条件判断的示例,展示了如何根据布尔值来判断是否输出某些文本:```#if($showWelcome)<h1>Welcome!</h1>#else<h1>Goodbye!</h1>#end```在这个示例中,如果变量`showWelcome`为真,将输出`<h1>Welcome!</h1>`,否则将输出`<h1>Goodbye!</h1>`。

4. 循环控制:Velocity模板引擎也支持循环控制,可以通过`#foreach`语法来遍历集合或者数组的元素。

velocity2.0 入门 变量 方法

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指令来调用这个方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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>&nbsp;</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>。

相关文档
最新文档