`
wanxiaotao12
  • 浏览: 476653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于velocity 一语法篇

 
阅读更多

 一个古老而又强大的模版引擎。在模版引擎中,velocity中,应该属于最常用的,不管是在maven的项目模版,还是在源代码输出,甚至直接网页输出中,都可以看到其身影。当然,最近的freemarker大有平分天下之意。
以前的时候,曾用velocity设计过一个自动代码的项目,在用的过程中,享受了其简单而又灵活的功能。后来由于,自动代码的项目一直没有什么进展,也就很少去关注velocity。这段时间,被jsf搞得焦头烂额,最后想起了velocity,看看能不能用其来实现替换jsf的标记库功能。于是又复习了一遍velocity。
先来看看velocity的语法:vtl也就是velocity的基本语言.用过脚本语言的,对于这个应该会很容易上手,其实,基本上,语法可以分为变量和关键词。先来看看变量,变量使用$作为开头符号,$a 和${a}是一致的。类似于jstl中的变量定义。在模版中声明一个变量是很容易的,使用set关键字
#set( $foo = "Velocity" )。对于velocity中,感觉比较灵活的就是变量中,可以直接使用方法,和javabean属性一样方便使用:
对于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://www.blogjava.net/zyl/archive/2007/05/14/117215.html

分享到:
评论

相关推荐

    velocity文档及其详细语法

    本篇将详细介绍Velocity的基本语法和特性。 ## 1. Velocity模板语言基础 Velocity模板语言(VTL)是一种简单的脚本语言,它允许开发者在HTML或其他类型的文本文件中插入可执行的代码片段。VTL的主要目标是分离内容...

    velocity入门篇

    **Velocity入门篇** Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与应用程序逻辑分离,使得开发者和网页设计师可以协同工作,提高开发效率。Velocity由Apache软件基金会开发并维护,是Apache ...

    velocity document

    这篇文档将帮助你深入理解Velocity模板语言(VTL)的使用和特性。 **一、Velocity模板语言(VTL)基础** 1. **变量引用**:在Velocity模板中,变量通常用`${variable}`表示,如`${name}`。这会引用Java对象的属性...

    Myeclipse手动安装Velocity编辑器插件

    6. **验证安装**:启动MyEclipse后,打开一个Velocity模板文件,如果能看到语法高亮、代码提示等增强功能,说明安装成功。若未出现这些功能,可能需要检查插件是否正确放置,或者MyEclipse是否有权限读取该插件。 7...

    myeclipse10 velocity插件的安装及安装包

    它使得在模板文件中编写和编辑Velocity语法变得更加直观和高效。你可以利用这些特性来提升开发速度和代码质量。 6. **注意事项**: - 确保MyEclipse版本与Velocity插件兼容,否则可能会出现安装失败或运行异常。 ...

    velocity eclipse插件

    本篇将详细介绍如何安装并使用Velocity Eclipse插件,以及其带来的便利性。 首先,我们来关注一下如何安装这个插件。下载的压缩包文件名为"com.googlecode.veloeclipse.ui_2.0.8",这表明它是Velocity Eclipse插件...

    myeclipse Velocity 插件

    本篇文章将详细探讨“myeclipse Velocity 插件”,以及如何在MyEclipse中有效地利用这个插件进行开发工作。 Velocity是一个基于Java的模板引擎,它允许开发者将HTML页面设计与业务逻辑分离,从而实现更清晰的代码...

    velocity实现邮件模板定制

    本篇文章将深入探讨如何使用Velocity实现邮件模板的定制,以及与之相关的源码和工具。 首先,Velocity的基本原理是通过一种简单的模板语言(Velocity Template Language,VTL)来分离内容和展示逻辑。开发者可以...

    Velocity Demo

    这篇博文“Velocity Demo”可能提供了关于如何使用 Velocity 进行实际开发的示例。 **Velocity 概念解析** 1. **模板语言**: Velocity 使用简单的模板语言,允许开发者在模板文件中插入变量和控制结构,如 #if、#...

    Velocity指南

    虽然 `《DB4O Java开发应用》--之起步篇.doc` 不直接关于 Velocity,但 DB4O 是一个对象数据库,可能在 Velocity 模板中使用以存储和检索数据。了解如何与这种类型的数据库交互可以增强 Velocity 应用的性能和灵活性...

    velocity官方实例

    本篇文章将深入探讨Velocity如何作为生成静态页模板的技术实例。 **一、Velocity模板语言基础** Velocity模板语言(VTL)是Velocity的核心,它提供了一种简单而强大的方式来连接模板和后端数据。VTL的关键元素包括...

    eclipse4.5版本velocity离线安装插件Veloeclipse2.0.8

    在本文中,我们将详细讨论如何在Eclipse 4.5版本上离线安装Velocity插件Veloeclipse 2.0.8,以便更好地支持Velocity模板语言的语法高亮显示。Velocity是Apache软件基金会的一个开源项目,它是一个轻量级的Java模板...

    使用Velocity Swing制作的代码生成工具

    Velocity语法简单,易于学习,适合用于生成静态页面或代码。 3. **模板引擎**:在代码生成工具中,模板引擎是核心组件。开发者可以预先定义模板文件,模板中包含变量和控制结构,这些在运行时会被实际数据替换,...

    精通Apache Velocity

    #### 一、Apache Velocity简介 Apache Velocity 是一款基于 Java 的模板引擎,用于 Web 应用开发中动态页面的生成。它通过定义一系列模板语法来实现将数据模型与表现层(即视图)分离的目的。在本教程中,我们将...

    当前流行的模板引擎效率分析(velocity,freeMarker,Smarty4j,httl)

    Velocity是Apache软件基金会的一个开源项目,以其简洁的语法和强大的功能受到广泛欢迎。它的设计目标是提供一个允许开发者专注于内容,而不是HTML的工具。Velocity通过MVC模式工作,使得业务逻辑和视图层分离。然而...

    《Velocity Web应用开发指南中文版》.doc

    - **《VTL语法参考指南中文版》**:提供关于Velocity模板语言(VTL)的详尽语法说明和示例。 - **《DB4O中文系列之起步篇》**:虽然与Velocity关系不大,但提供了关于DB4O数据库的入门知识。 以上内容涵盖了从...

    Velocity 资料汇总

    花了所有CSDN积分收集来的Velocity资料...velocity语法 velocity初探 velocity1.5帮助说明 velocity Tool1.4帮助说明 Veloctiy例子 Struts结合Velocity开发web应用 Struts与Velocity的简单集成 使用Velocity开发web程序

    Velocity之WEB(Object,List,Map)

    这篇博文主要探讨了如何在Web开发中使用Velocity处理Object、List和Map对象。 首先,让我们深入了解Velocity的基本概念。Velocity模板语言(VTL)是一种简单的、非脚本式的语言,它的核心思想是“分离关注点”——...

    NVelocity语法 java or c#

    这篇文章将深入探讨NVelocity的核心语法和其在C#环境中的应用。 NVelocity模板的基本概念是"分离关注点",即把表现层(HTML)与业务逻辑分离开来。模板文件通常包含HTML结构以及用特定的NVelocity指令插入的数据...

Global site tag (gtag.js) - Google Analytics