一个基于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 支持内嵌语法,所以对于模版的定义,就变得更加的灵活而简单了。
分享到:
相关推荐
学习使用Velocity的东东,有用的来下载,不用的别来喷我 Velocity基本语法
以下是对Velocity的基本语法进行了深入的介绍。需要的朋友可以过来参考下
JAVA中Velocity语法基础.pdf
Velocity的基本语法:1.变量 2.循环 3.条件语句 4.语句的嵌套 5.注释 .....
Velocity.js 是velocity模板语法的javascript实现。... 基本完全支持velocity语法 浏览器使用支持模板之间相互引用,依据kissy模块加载机制 三个Helper,友好的数据模拟解决方案 Vim Syntax 标签:Velocity
本人写的velocity教程,包括模板引擎基本使用方法,velocity语法,servlet+velocity例子,spring mvc+velocity例子
本课程从velocity engine也就是velocity引擎开始, 先讲解velocity的基本使用以及基础语法 , 然后再讲解velocity 的进阶内容velocity Tools , 以及velocity作为web项目的视图改如何使用 , 每一部分都会有一个综合案例...
velocity 基础 入门教程 基本语法
文档是velocity基本知识,语法运用,宏定义等,适合新手入门
介绍velocity的基本知识点和常用语法,及用法实例!
从Velocity的基础说起,讲到了其语法、然后结合其他流行技术进行延伸讲解,希望对你有帮助——资料仅有前14章,但已足够学习了
Scalate是基于的模板引擎,它支持HAML,Mustache和JSP,Erb和Velocity样式语法。 支持以下模板语言: :是Java / Scala的Mustache模板语言:Haml / Scaml模板语言的翡翠风格 :提供Haml样式模板语言 :提供JSP,Erb...
velocity 语法手册,可以方便查询基本语法和使用方式
寂静与 Apache Velocity 语法相同的提取模板引擎。基本理念通过尝试将模板与格式化文本进行匹配来填充 Apache Velocity 上下文(又名字符串 -> 对象映射)。调用例子: import stillness.Stillness;import stillness...
Velocity模板的基本语法及使用的基本方法。
项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 仿照知乎做的一个Java web项目,是一个sns+资讯的web应用。使用SpringBoot+Mybatis+velocity开发。数据库使用了redis和mysql,同时加入了...