监听方法
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 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...
1. **Tapestry5最新中文教程.doc**: 这份文档可能是针对Tapestry 5的最新中文教程,旨在为初学者提供一个易懂的入门指南。通常,它会涵盖基本的框架安装、环境配置、组件使用、事件处理、页面和组件生命周期等主题...
在这个“Tapestry学习文档”中,我们可以深入理解这个框架的核心概念和技术。 1. **组件化编程**: Tapestry的核心是组件,它将UI元素(如按钮、表单、列表等)封装为独立的、可重用的单元。每个组件有自己的状态...
【Tapestry笔记】 Tapestry是一个基于Java的Web应用框架,它采用了面向组件的开发方式,这使得它与其他如Structs、WebWork、SpringMVC等采用传统面向元素开发方式的框架有所不同。面向组件的开发模式旨在克服面向...
Apache Tapestry 5 是一个基于Java的Web应用开发框架,其设计目的是为了简化Web应用程序的构建,提供组件化的页面构建、输入验证...通过学习和实践Tapestry 5,开发者能够更好地理解和掌握现代Web应用开发的最佳实践。
Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...
《Tapestry 5 電子書》是关于Java Web开发框架Tapestry 5的一本详尽指南,由Packt Publishing在2007年出版。这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用...
### Tapestry5最新中文入门实例教程 #### 一、引言 Tapestry是一个使用Java语言创建Web应用程序的面向组件的开发框架。本教程旨在通过实际案例帮助读者掌握Tapestry 5的基本概念和核心功能,并体验其带来的高效开发...
本书主要面向希望学习或提高 Tapestry 5 技能的 Java 开发者。无论您是初学者还是有一定经验的开发者,都可以从中获得有价值的见解和实用的技巧。 #### 三、核心内容概览 ##### 1. **基础概念** - **Tapestry 5 ...
Apache Tapestry 5 是一个基于Java的开源Web应用程序框架,其设计目标是提供一个面向组件的开发环境,简化Web应用的构建。...通过学习和掌握Tapestry 5,开发者能够构建出更优雅、用户体验更好的Web应用程序。
是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。
本压缩包包含了丰富的Tapestry学习资料,总计约25M,涵盖了各种教程、教材和实践案例,对于想要深入理解和掌握Tapestry的开发者来说,是一份非常宝贵的资源。 1. **Tapestry基础** Tapestry基于组件模型,每个网页...
Tapestry5和jQuery集成.使用jQuery以极少的兼容问题完全替换Prototype 和 Scriptaculous库 标签:tapestry5
5. **事件处理和页面导航**: Tapestry支持事件驱动的编程模型。当用户与页面交互时,Tapestry会触发相应的事件,并调用处理方法。此外,页面之间的导航可以通过声明式的方式定义,使得应用的流程更加清晰。 6. **...
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型...通过学习"Tapestry简单入门.rar"中的文档,你将能够掌握这个框架的基础知识,为进一步深入学习和实践打下坚实基础。
里面用详细实例说明了tapestry5的使用方法 简单 实用 详细 一看就会 在这里提醒一下大家,这个教程讲的是tapestry5而不是tapestry4,如果需要看tapestry4的话,请看我传的另外一本有关tapestry的教程,英文的那本,...
Apache Tapestry 5 是一个基于Java的Web应用开发框架,其核心理念是组件化开发,通过构建组件来创建页面。...通过学习和掌握Tapestry,开发者能够创建出更加优雅、易用、安全且适应性强的Web应用程序。
Tapestry 5是一款强大的Java Web应用程序框架,由Apache软件基金会维护。它提供了一种声明式编程模型,使得开发者能够创建动态、响应式的Web应用,同时保持代码的整洁和易于维护。本指南将深入探讨Tapestry 5的核心...