velocity学习

Velocity是一个通用的基于JAVA的模板开发引擎。是Apache中Jakarta项目中的一个子项目。
可以用于任何需要对数据进行格式化或表现数据的JAVA应用。
模板语法VTL。
优点:应用邻域广、提供了VTL、简单的编程模式、对逻辑和表现分别进行维护,集成到任何JAVA的应用环境中、访问任何JAVA对象的任何公有方法。符合MVC的开发模式。
邻域:WEB应用、源代码和SQL语句的生成、XML的处理和转换、文字处理。
例子:
velocity.init();
velocitycontext context = new velocitycontext();
context.put("name","yangqi");
template tm =velocity.gettemplate("*.vm");
stringwriter w = new stringwriter();
tm.merge(context,w);
out.println(w)
程序员:要确定要开发的页面要用到哪些内容,定义变量名称和类型。然后就是JAVA代码的编写。可以在servlet和普通java中使用。
修改velocity的配置文件的方法:
1、velocity.setproperty(string key,object value)
velocity.init();
2、velocity.init(properties p);
3、velocity.init(string filename);
要修改的是:模板文件的存放路径、输入的编码方式和输出的编码方式。
velocity基本类:org.apache.velocity.app.velocity
velocity容器类:org.apache.velocity.velocitycontext
velocity模板类:org.apache.velocity.template
可以把velocitycontext对象看成一个hashtable,把需要的数据使用PUT方法放进去就好了,但放进去的数据必须是一个java对象object.
//
Velocity使用Iterator类来实现对集合元素的遍历(模板语言中使用#foreach语句),这样在我们把集合或者数组放入context中去的时候就有必要了解以下Velocity对不同的集合对象的处理:
Object[]:Velocity会自动转换对象数组为相应的集合类型以获得Iterator接口对象。
java.util.Collection:Velocity将使用Collection.iterator()接口来获得Iterator对象,如果你自己继承一个Collection对象,请保证实现Iterator()接口能获得正确的Iterator对象。
java.util.Map:Velocity使用Map的values()方法来获得相应的Collection对象从而可以获得Iterator对象。
java.util.Iterator :Velocity不推荐直接使用Iterator对象,尽管Velocity暂时支持这一点。理由是Iterator对象是不可以重置的,一个Iterator对象被遍历过一遍之后,不能再重头开始一次遍历,也就是说,一个Iterator对象在模板中只能循环一次。
java.util.Enumeration :和Iterator对象一样,Velocity不推荐使用枚举对象,因为不能再次循环。
//

velocity基于servlet的开发方式。继承下面的基类
org.apache.velocity.servlet.velocityservlet而不是javax.servlet.http.httpservlet
要重载方法public Template handleRequest( HttpServletRequest request, HttpServletResponse response, Context ctx)
模板语言(VTL)给页面开发者使用
"$"打头是VTL变量,"#"打头表示这个是一个VTL指令
VTL语言中存在三种引用:变量、属性和方法。模板中使用的这三种引用Velocity都会转换为相应的JAVA方法。Velocity是通过调用JAVA对象的tostring()方法来实现替换的。
$user.name属性Velocity将转换为java语言的User.getName()
普通引用$my_first-name 哑引用$!my_first-name 正式引用:${my_first-name}
#set--变量定义和赋值指令
#if--条件判断指令
#foreach--数组循环遍历指令
Velocity提供一个循环计数器$velocityCount供使用
#include--文件包含指令
#parse--模板解析指令
#stop--停止指令
#marco--自定义宏(函数)
默认的模板库文件名为“VM_global_library.vm”
配置参数
velocimacro.library = vm_global_library.vm
velocimacro.permissions.allow.inline=true
Velocity使用了WebMacro的思想,实际上就是webmacro的另外一个实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值