一个基于java的模板引擎(Template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用java代码定义的对象。当velocity应用于web开发时,界面设计人员可以和Java程序开发人员同步开发一个基于MVC框架web站点。
也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。
先来看看velocity的语法:vtl也就是velocity的基本语言.用过脚本语言的,对于这个应该会很容易上手,其实,基本上,语法可以分为变量和关键词。
定义变量:
变量使用$作为开头符号,$a 和${a}是一致的。在模版中声明一个变量是很容易的,使用set关键字,例如:
#set( $foo = "Velocity" )
对于velocity中,感觉比较灵活的就是变量中,可以直接使用方法,和javabean属性一样方便使用:
如下:$customer.Address,$purchase.Total,$customer.Address.phone。不过好像不支持map语法,如:a["key"]这种写法,但是可以使用方法代替:a.get("key")。而使用了方法,感觉就在使用java代码一样方便。当然变量中支持简单的表达式计算:$a+1等等。
有一点需要注意的是,如果变量没有解析,还是会输出$a这个变量,而不是空白或者报错。
关键字:
关键字使用#开头。
其关键字也不多,只有少数的几个,但是已经足够用了。如前面的声明变量:#set
#if #elseif #else #end 这是最常用的条件判断,每个判断使用#end结尾
#if($a==1)true enough#{else}no way!#end
#foreach() #end用于循环输出
#foreach( $key in $allProducts.keySet() )
<li>Key: $key -> Value: $allProducts.get($key)</li>
#end
#include,用于包括一些资源文件,当然include是不会去解析资源文件,这和#parse不同
#include( "one.txt" )
#parse,用于解析并且包括相应的资源文件
#parse( "me.vm" ),和主文件共享相应的Context
#stop,用于停止执行解析,并返回,主要用于调试功能。
基本上,使用以上的语法,可以定义出任何的模版了。当然,为了简化模版的定义,velocity特意推出了#macro这个强大的功能.
#macro,类似于宏定义,用于自定义相应的标记。
如下定义了一段宏,用于输出表格中的列表
#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
<tr><td bgcolor=$color>$something</td></tr>
#end
#end
在模版中,只需要使用#tablerows($color $somelist)就可以取代里面的代码了:
#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )
#set( $color = "blue" )
<table>
#tablerows( $color $greatlakes )
</table>
而且#macro 支持内嵌语法,所以对于模版的定义,就变得更加的灵活而简单了。
引用
http://blog.csdn.net/zyl623/archive/2007/05/14/1607701.aspx
分享到:
相关推荐
【Velocity基本语法】是Java Web开发中常用的模板引擎技术,主要负责动态生成HTML或其他文本格式的文件。以下是对Velocity语法的详细解释: 1. **#标识的脚本语句**: - `#set`:用于设置变量,例如`#set($var = ...
**三、Velocity基本语法** 1. **引用变量**:在Velocity模板中,可以使用`${variable}`来引用Java对象的属性,如`${user.name}`。 2. **控制结构**:Velocity支持条件语句(`#if`、`#elseif`、`#else`)和循环(`#...
在本文中,我们将深入探讨Velocity的基本语法及其在EasyJWeb中的最佳实践。 1. **基本语法** - `#`符号用于标识Velocity的控制结构,例如`#set`、`#if`、`#else`、`#end`、`#foreach`等。这些指令用于控制流程和...
** Velocity语法基础 ** 1. 变量引用:Velocity使用`$`符号来引用变量,如`$name`。如果变量未定义,Velocity会自动忽略,避免抛出异常。 2. 指令控制:Velocity提供了多种指令,如`#set`用于赋值,`#if`用于条件...
Velocity 语法大全提供了一些基本语法和实践指南,帮助开发者快速掌握 Velocity 语法。 基本语法 1. `#` 用来标识 Velocity 的脚本语句,包括 `#set`、`#if`、`#else`、`#end`、`#foreach`、`#include`、`#parse`...
Velocity语法以其灵活性和易用性,为动态网页生成提供了坚实的基础。然而,良好的实践和适度的使用策略对于保持代码的清晰度和维护性至关重要。在EasyJWeb等现代框架中,合理利用Velocity模板语言的特性,结合框架的...
JAVA 中 Velocity 语法基础 Velocity 是一个基于 Java 的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由 Java 代码定义的对象。Velocity 应用于 web 开发时,界面...
Velocity的基本语法:1.变量 2.循环 3.条件语句 4.语句的嵌套 5.注释 .....
二是Velocity模板引擎的语法及使用方法。然而,基于题目要求,本回答将着重于解析Velocity的相关知识点,并简要提及Tomcat的部分配置内容作为背景。 ### Tomcat部署项目配置背景 在文档中提到了如何通过修改`...
本篇将详细介绍Velocity的基本语法和特性。 ## 1. Velocity模板语言基础 Velocity模板语言(VTL)是一种简单的脚本语言,它允许开发者在HTML或其他类型的文本文件中插入可执行的代码片段。VTL的主要目标是分离内容...
以上介绍了一些基本的 Velocity 语法特性,接下来我们通过一个具体的示例来看看如何综合运用这些特性。 **示例:** ``` #set($list = ["apple", "banana", "cherry"]) #foreach($item in $list) #if($item == ...
### Velocity 语法笔记 #### 一、Velocity 概述与基本用法 Velocity 是一个基于 Java 的模板引擎,主要用于 Web 应用程序中生成动态页面。它提供了丰富的语法支持,使得开发者可以更轻松地处理数据并将其转换为...
## Velocity语法基础 1. **变量引用**:Velocity中的变量用`$`符号表示,例如`$name`,它会引用Java对象的属性。如果`name`是一个对象的属性,那么`$name`会输出该属性的值。 2. **括号引用**:当变量名包含特殊...
**二、Velocity基本语法** 1. **总括** - `#`:Velocity脚本语句的标识符,例如`#set`、`#if`、`#else`、`#end`、`#foreach`等。 - `$`:表示对象或变量,如`$info`、`$msg`。 - `{}`:用于明确指定Velocity变量...
Velocity基本语法 - 变量引用:`${variable}`,用于插入变量的值。 - 动态控制结构: - `#if` - 条件判断 - `#else` - 如果条件不满足时执行的代码 - `#foreach` - 遍历集合或数组 - `#set` - 定义变量 - 逻辑...
以下是Velocity语法的基本概念和最佳实践: ### 一、基本语法 1. **`#`标识符**:`#`用来标记Velocity的指令,如`#set`用于赋值,`#if`、`#else`、`#end`用于条件判断,`#foreach`用于循环,`#include`和`#parse`...
#### 二、Velocity 基础语法详解 ##### 2.1 Velocity 标记符号详解 - **“#”号的使用**:“#”号用于标识 Velocity 脚本中的各种语句,包括但不限于条件语句(`#if`, `#else`, `#end`)、循环语句(`#foreach`, `...