二、listener method
如果使用过tapestry的应该知道listener方法在4.X以前版本中的定义,如public void formSubmit(IRequestCycle cycle),方法必须
有一个IRequestCycle参数。参数的取得方式如下:Object[] parameters = cycle.getServiceParameters();
在4.X中参数的取得可以通过以下两种方式:
- 调用IRequestCycle.getListenerParameters()方法,需要传入IRequestCycle实例作为参数。
- 按照参数的声明顺序依次定义为listener方法的参数。
第二种方法比较符合软件的设计思维,而且参数的类型在传入后保存,而不是想象中的统一String类型。
例如:
<a jwcid="@DirectLink" listener="doClick" parameters="{ objectId, index }"> . . . </a>
其中objectId为String类型,index为int,声明中使用了默认的参数绑定类型。
对应的方法声明如下
public void doClick(String objectId, int index)
{ . . . }
此为第二种方式,可见方法的定义符合自然习惯,当然你也可以通过传统的方法,如下所示: public void doClick(IRequestCycle cycle)
{ Object[] parameters = cycle.getListenerParameters();
String objectId = (String)parameters[0];
int index = ((Integer)parameters[1]).intValue(); . . . }
这种方式是为了向后兼容以前的版本,当然也适用那种参数数目不确定的情况。 Tapestry默认搜索以下的方法声明:
- public void method(parameters)(页面的跳转 cycle.activate()如何实现?)
- public void method(IRequestCycle cycle, parameters) (倾向于使用此方式)
- public void method()(无需参数传递和页面跳转的情况,估计可能性不大)
- public void method(IRequestCycle cycle)(传统方式)
不要试图通过参数的类型来映射listener方法,tapestry是根据参数的数目来确定方法的。
分享到:
相关推荐
【标题】"tapestry-bin-5.1.0.5" 指的是Apache Tapestry的一个特定版本的二进制发行包。Tapestry是一个开源的Java Web应用程序框架,它提供了一种基于组件的开发方式,用于构建动态、交互式的Web应用。 【描述】...
在"tapestry-ioc-5.0.3-src"这个压缩包中,我们可能找到Tapestry IOC框架的源代码,这对于开发者深入理解其工作原理和定制功能非常有价值。 1. **依赖注入(DI)**:Tapestry IOC的核心概念就是DI,它允许对象在...
Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...
在"tapestry-project-4.1.5"这个压缩包中,我们有机会深入探索 Tapestry 4.1.5 版本的特性和应用。 首先,让我们关注"Tapestry-libraries"这个文件夹。它包含了Tapestry 框架运行所需的各种库文件,这些库文件是...
书中会介绍如何利用Tapestry 5的缓存机制、延迟加载等特性来提高应用性能。 7. **测试**:Tapestry 5提供了丰富的测试工具和库,如Tapestry Test和WicketTester。书中会指导读者如何编写单元测试和集成测试,以确保...
`apache-tapestry-5.3.8-bin.zip` 是Apache Tapestry 5.3.8版本的二进制发行包,包含了运行和开发Tapestry应用所需的各种库文件。 1. **Tapestry框架**:Tapestry是由Howard Lewis Ship创建的一个MVC(Model-View-...
android-priority-jobqueue.zip,一种专为android编写的作业队列,用于方便地调度在后台运行的作业(任务),提高用户体验和应用程序稳定性。一种专为android编写的作业队列,用于方便地调度在后台运行的作业(任务)...
`tapestry-jpa-5.3.7.jar`和`tapestry-hibernate-5.3.7.jar`则与持久层集成有关,它们支持JPA(Java Persistence API)和Hibernate ORM框架,使开发者能够轻松地在Tapestry应用中处理数据库操作。 总的来说,Apache...
即使Tapestry4引入了许多新特性,其核心机制仍然沿袭了之前的版本。因此,阅读之前针对Tapestry3的文档能帮助你更快地适应Tapestry4。 【快速入门】 要开始Tapestry4的开发,首先需要搭建合适的开发环境,这包括...
标题中的“tapestry-bin-5.0.14.zip”指的是Tapestry的最新版本5.0.14的二进制发行包,它包含了开发人员构建基于Tapestry应用所需的所有组件和库。 Tapestry 5.0.14的发布旨在提供更加稳定和高效的开发环境,为...
《Tapestry 4开发指南》是一本专为初学者设计的书籍,旨在帮助读者深入理解和熟练运用Tapestry 4这一强大的Java Web框架。Tapestry 4是一款开源的、基于组件的Web应用程序框架,它允许开发者用更加面向对象的方式来...
Tapestry是一个分布式系统基础设施,专门设计用于实现容错性的广域定位和路由。这个系统由Ben Y. Zhao、John Kubiatowicz和Anthony D. Joseph等人在加州大学伯克利分校的计算机科学部开发,旨在应对无处不在计算的...
您可以看到以下日志1: : -> org.apache.tapestry:quickstart(Tapestry 5 快速入门项目) 2: -> org.apache.tapestry:tapestry-archetype (Tapestry 4.1.6 Archetype) 所以你想创建 Tapestry 5 quickStart 项目...
Tapestry 4的核心特性之一是组件化。它允许开发者将UI分解为可重用的组件,每个组件有自己的独立逻辑和视图。这样不仅提高了代码的复用性,还简化了复杂应用程序的维护。 2. **MVC模式**: 虽然Tapestry 4不是...
- **项目名称**:Tapestry-3-Getting Started - **项目目标**:开发一个基于Web的货币转换器应用。 - **技术栈**:Tapestry 3、Eclipse IDE、Apache Tomcat。 #### 二、开发环境搭建 ##### 1. Eclipse IDE安装 - **...
这个压缩包包含了多个以"Tapestry"开头的子文件,如 "tapestry-core", "tapestry-hibernate", "tapestry-ioc", "tapestry-upload", 和 "tapestry-spring",这些都是Tapestry框架的不同模块或插件。这些文件的后缀是...
Tapestry5和jQuery集成.使用jQuery以极少的兼容问题完全替换Prototype 和 Scriptaculous库 标签:tapestry5
此外,Tapestry还提供了诸如页面转换、错误处理、国际化支持、表单验证、AJAX集成等特性。它强调代码的组织和可维护性,使开发者能更专注于应用程序的业务逻辑,而不是底层的Web基础设施。总的来说,Tapestry4.1.2...