Tapestry总共有6种标准的link组件:
GenericLink, ActionLink, DirectLink,ServiceLink, ExternalLink和PageLink
*disabled参数 公有参数,disabled=true时,链接不可用
A) GenericLink 组件
e.g.
<a href="http://www.baidu.com" jwcid="
@GenericLink">百度</a>
用于跳转到应用程序范围以外的链接
B) ExternalLink 组件
e.g.
<a href="" jwcid="
@ExternalLink"
page="
LogDetails"
parameters="ognl:new java.lang.
Object[]{item.id}">
<span jwcid="@Insert" value="ognl:item.name">日志名称</span>
</a>
带参数的页面跳转,不涉及session,使用service=external
*parameters属性,用以传递数组类型的参数(Object[]{})
*page参数表示所要跳转到的页面类(LogDetails页面类)
使用ExternalLink时,所要跳转到的页面类必须继承
IExternalPage接口,并实现一个方法.
LogDetails.java
public abstract class LogDetails extends BasePage implements IExternalPage {
......
public void activateExternalPage(Object[] parameters, IRequestCycle cycle){
this.setLogId((Integer) parameters[0]); //获取传递进来的参数并执行所需操作
}
}
IRequestCycle类型的参数cycle表示当前访问该页面的requestCycle
C) PageLink 组件
e.g.
<a href="" jwcid="
@PageLink"
page="
UserInfo">个人设置</a>
相当于不带参数的ExternalLink组件,不过使用的是service=page
D) DirectLink 组件
e.g.
<a jwcid="
@DirectLink"
listener="listener:logSelect"
parameters="item.id">
<span jwcid="@Insert" value="ognl:item.name">日志名称</span>
</a>
Log.java
public IPage logSelect(Integer id){
LogDetails logDetails = getLogDetails();
logDetails.setLogId(id);
return logDetails;
}
DirectLink组件表现为一个HTML<a>元素,用来提供一个URL,当用户点击时,触发页面中一个特定的监听方法.使用service=direct
涉及session,DirectLink拥有一个boolean类型的stateful参数来选择stateful或stateless,该参数默认为true,即stateful.
DirectLink通过listener监听方法将参数“扔”给下一个页面,这与ExternalLink的实现IExternalPage接口以及activateExternalPage方法接收参数不同.
关于DirectLink使用session的示例:
<a jwcid="
@DirectLink"
listener="listener:logSelect"
parameters="ognl:new java.lang.Object[]{item.id}">
Log.java
public IPage logSelect(IRequestCycle cycle){
IPage logDetails = cycle.getPage("LogDetails");
cycle.activate(logDetails);
}
LogDetails.java
public void beginResponse(IMarkupWriter writer, IRequestCycle cycle) {
Object[] logObj = cycle.getListenerParameters();
int logId = ((Integer)logObj[0]).intValue();
...
}
先跳转到另一个页面,然后可以在该页面中获取传递过来的参数,因为参数随session传递过来了.
E) ActionLink 组件
e.g.
具体不了解,也么用过,听说这个组件在T5里面已经变了样了,以后再学习
F) ServiceLink 组件
e.g.
<a jwcid="@ServiceLink" service="literal:restart">退出</a>
听说ServiceLink组件可以使用Tapestry的9种服务,不过不知道如何使用,目前初入Tapestry,尚未涉及.
分享到:
相关推荐
总结起来,创建一个自定义的邮件组件在 Tapestry 5 中涉及编写组件类、模板文件和元数据配置,并将其集成到应用中。这个过程需要对 Tapestry 5 的组件模型有深入理解,包括生命周期、事件处理、依赖注入等概念。通过...
本文将深入探讨Tapestry 4.02版本中对ExtJS的GridPanel组件进行封装的相关知识点。 首先,Tapestry是一个基于Java的开源Web应用框架,它提供了组件化开发的方式,使得开发者可以构建出结构清晰、可维护性强的大型...
tapestry部分组件绑定参数的列表!
介绍Tapestry组件的使用和功能。内容还行,使用初学者入门。
总结来说,Tapestry页面编辑组件为开发人员提供了构建动态web应用的强大工具,使得创建交互式表单变得简单且直观。通过熟练掌握这些组件,你可以快速构建出功能丰富的网页,提高开发效率,同时保证应用程序的稳定性...
### 关于Tapestry的一些个人总结 #### 一、Tapestry简介与核心特性 Tapestry是一个基于Servlet的框架,它可以运行在任何支持Servlet的容器(如Tomcat)或者包含Servlet容器的应用服务器(例如JBoss)之上。该框架...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...
总结一下,"tapestry hibernate Spring应用及组件的使用"这个例子展示了如何整合这三个强大的框架来构建一个完整的Web应用。Tapestry负责用户界面,Hibernate处理数据持久化,而Spring则提供了整体架构的支持。...
Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...
- **组件状态管理**:探讨了Tapestry中组件状态的生命周期及其管理方法,包括如何在不同的请求之间保持组件的状态。 #### 第5章:表单输入验证 - **内置验证器**:详细列出了Tapestry提供的内置验证器类型,如长度...
总结,Tapestry 与 Spring 的集成允许开发者利用两者的优点,构建出结构清晰、松耦合的 Web 应用。通过将业务逻辑和视图组件分离,Tapestry 提供了更好的用户体验和组件重用,而 Spring 则提供了强大的依赖管理和...
2. **组件实例化**:根据页面和组件定义,Tapestry 创建必要的组件实例。 3. **状态管理**:Tapestry 自动处理组件状态的保存和恢复,确保在多个请求间保持一致性。 4. **渲染**:Tapestry 将组件渲染成HTML响应,...
1. **组件化编程:**Tapestry的核心思想之一就是组件化编程,这意味着开发者可以将Web页面分解为多个可复用的组件,每个组件都可以独立开发和维护。 2. **自动表单处理:**Tapestry框架提供了自动表单处理功能,可以...
不同于JSP,Tapestry采用组件对象模型,提供了一种构建高度动态、交互性强的Web页面的方式。Tapestry的核心在于将Web应用分解为可重用的组件,每个组件都有明确的功能,负责生成和处理HTML请求。 **Tapestry工作...
在本文中,我们将深入探讨 Tapestry 4.02 框架中封装的 Ext TabPanel 组件。Tapestry 是一个开源的Java Web 应用程序开发框架,它允许开发者使用简单的Java类和模板语言来创建动态、交互式的Web应用。而 Ext 是一个...
开发者可能已经创建了一个自定义的 Tapestry 组件,该组件利用 ExtJS 的组件和 API 来增强其功能。 3. **脚本集成**:在 Tapestry 页面模板中,可以直接嵌入 JavaScript 代码,包括 ExtJS 的库和配置。开发者可能将...
1. **页面和组件的生命周期**:每个Tapestry 3应用由一系列页面组成,页面又包含多个组件。Tapestry管理这些页面和组件的创建、初始化、渲染和销毁过程。 2. **模板和元数据**:Tapestry使用HTML模板定义页面布局,...
Tapestry的组件系统非常强大,允许开发者定义自己的可复用组件,每个组件都可以有自己的属性、事件和行为。这些组件可以通过简单的XML标记(如`<span jwcid="@Insert" ...>`)在页面模板中使用。ognl(Object-Graph ...
1. **Tapestry Core**: 这是Tapestry框架的基础部分,包含了核心组件、服务容器(Tapestry IoC)和页面生命周期管理。通过源码分析,我们可以理解其如何实现页面组件的渲染、事件处理和依赖注入。 2. **Tapestry ...