监听方法
Tapestry框架属于事件触发机制,监听方法是我们在客户端触发服务器端Tapestry框架的主要方式。监听方法有多种形式,当表单form被触发提交的时候,或者当一个链接被单击的时候,就会触发监听方法。监听方法存在于我们的页面类或组件类中,例如,DirctLink组件和Form组件都拥有一个监听参数,我们可以使用一个”listener”字符串将我们页面类中的监听方法绑定在组件的监听参数上。
监听方法其实就是一个普通的功用非抽象方法,它可能携带有参数,也可能返回某种类型的值。Tapestry框架并不强制要求监听方法必须携带参数或必须拥有返回值,一个普通的功用方法一旦与某个组件的监听参数通过“listener”字符串绑定,那么这个普通的功用方法就变成了监听方法。
1. 监听方法的返回类型
监听方法可以使void方法,也可以返回一个String字符串,或者可能是一个实现了IPage接口的页面对象实例。返回一个字符串或返回一个页面对象实例是为了激活并跳转页面以便响应请求。如果返回NULL,则跳转到当前页面。
Void:监听方法跳转到当前页面;
String: 监听方法根据返回的页面名称来激活页面并表现响应,返回NULL,则跳转到当前页面;
IPage:监听方法根据返回的页面类实例来激活页面对象。页面对象可以通过request cycle来获取,也可以通过页面属性注入页面实例来获得,返回NULL则跳转到当前页面;
ILink:监听方法根据返回的实现ILink接口的对象对客户端URL进行重定向。
2.监听方法的参数
当使用DirectLink组件,ActionLink组件,Submit组件等带有parameters参数的组件时,你甚至可以定制该组件的监听方法参数。DirectLink组件的parameters参数所携带的值将会被编码到URL中,以便我们可以通过监听方法的参数来直接获取。
例如:我们通过以下方式调用DirectLink组件。
代码
- <component id=”byFruitLink” type=”DirectLink”>
- <binding name=”listener” value=”listener:buyFruit”/>
- <binding name=”parameters” value=”{fruit.id,fruit.name}”/>
- </component>
那么我们可以通过以下两种方式获取DirectLink组件的Parameters参数所绑定的值。
以IRequestCycle 对象作为监听方法的参数,然后通过该对象的getListener Parameters()方法获取一个包含所有数据的数组,再从该数组中依次取出组件parameters参数绑定的值,例如:
代码
- Public IPage buyFruit(IRequestCycle cycle){
- Object[] parameters = cycle.getListenerparameters();
- Integer id = (Integer) parameters[0];
- String name =(String)parameter[1];
- }
直接以监听方法的参数对应获取每一个DirectLink组件的parameters参数所携带的值。
代码
- Public IPage buyFruit(Integer id,String name){
- }
第二种方式显得非常灵活。DirectLink组件的parameters参数所携带的值并不一定都是String类型,它可以是任意类型,但是监听方法参数的类型必须与parameters组件参数所携带的值得类型一一对应。
相关推荐
Tapestry的学习笔记,全都是从网上整理的
强大的tapestry框架的学习入门资料,详细介绍了tapestry的常用开发文档。
该包包含: Tapestry5最新中文教程.doc tapestry.pdf tapestry开发流程.docx Tapestry开发指南0.8.pdf tapestry用户手册.pdf
Tapestry~需要学习资料的进来看看 纯英文原版
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...
本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的...
是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。
Tapestry5和jQuery集成.使用jQuery以极少的兼容问题完全替换Prototype 和 Scriptaculous库 标签:tapestry5
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
tapestry5组件说明使用及登陆修改等简单实例
很不错的tapestry入门手册,安装教程学习后,基本可以熟练使用tapestry,极大提示开发效率。史上最全面Tapestry学习教程,Tapestry学习资料,适合入门
最新Tapestry 5 電子書
里面用详细实例说明了tapestry5的使用方法 简单 实用 详细 一看就会 在这里提醒一下大家,这个教程讲的是tapestry5而不是tapestry4,如果需要看tapestry4的话,请看我传的另外一本有关tapestry的教程,英文的那本,...
本人搜集的tapestry学习资料,压缩后25M左右。其中很多资料很难得。应该说对tapestry开发者有很大帮助。
老外的一个ppt介绍Tapestry 5
Tapestry5.0.16文档和大家一起学习
Tapestry 5开发指南(英文) Tapestry 5开发指南(英文) Tapestry 5开发指南(英文) Tapestry 5开发指南(英文)
Tapestry5 英文版入门技术指导!
Tapestry5开发环境搭建(Eclipse),包括服务器搭建。。。
使读者在学习如何使用Tapestry框架技术的同时,还能够获得在J2EE Web应用程序中应用Tapestry框架的先进经验。本书详细介绍了Hivemind框架的原理与应用,使读者不但可以通过Hivemind来重构Tapes 资源太大,传百度网盘...