`
snail_gtt
  • 浏览: 48207 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tapestry组件运用总结(Link)

阅读更多
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>
&nbsp;&nbsp;&nbsp;&nbsp;听说ServiceLink组件可以使用Tapestry的9种服务,不过不知道如何使用,目前初入Tapestry,尚未涉及.
分享到:
评论

相关推荐

    tapestry5 自定义组件

    总结起来,创建一个自定义的邮件组件在 Tapestry 5 中涉及编写组件类、模板文件和元数据配置,并将其集成到应用中。这个过程需要对 Tapestry 5 的组件模型有深入理解,包括生命周期、事件处理、依赖注入等概念。通过...

    tapestry4.02中封装ext的GridPanel组件

    本文将深入探讨Tapestry 4.02版本中对ExtJS的GridPanel组件进行封装的相关知识点。 首先,Tapestry是一个基于Java的开源Web应用框架,它提供了组件化开发的方式,使得开发者可以构建出结构清晰、可维护性强的大型...

    tapestry组件

    tapestry部分组件绑定参数的列表!

    Tapestry的组件及功能

    介绍Tapestry组件的使用和功能。内容还行,使用初学者入门。

    tapestry页面编辑组件

    总结来说,Tapestry页面编辑组件为开发人员提供了构建动态web应用的强大工具,使得创建交互式表单变得简单且直观。通过熟练掌握这些组件,你可以快速构建出功能丰富的网页,提高开发效率,同时保证应用程序的稳定性...

    关于Tapestry的一些个人总结

    ### 关于Tapestry的一些个人总结 #### 一、Tapestry简介与核心特性 Tapestry是一个基于Servlet的框架,它可以运行在任何支持Servlet的容器(如Tomcat)或者包含Servlet容器的应用服务器(例如JBoss)之上。该框架...

    Tapestry简单入门.rar_java Tapestry_tapestry

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它提供了一种基于组件的模型来构建动态、数据驱动的Web应用。本教程将帮助初学者了解Tapestry的基本概念,带你逐步入门并掌握其核心组件的使用...

    tapestry hibernate Spring应用及组件的使用

    总结一下,"tapestry hibernate Spring应用及组件的使用"这个例子展示了如何整合这三个强大的框架来构建一个完整的Web应用。Tapestry负责用户界面,Hibernate处理数据持久化,而Spring则提供了整体架构的支持。...

    tapestry官方中文文档

    Tapestry是一款强大的Java Web应用程序框架,由Apache软件基金会维护,它强调了组件化、模块化和可重用性,使得开发复杂的Web应用变得更加简单。本文将深入介绍Tapestry 4的相关知识点。 1. **组件化编程**: ...

    Tapestry In Action

    - **组件状态管理**:探讨了Tapestry中组件状态的生命周期及其管理方法,包括如何在不同的请求之间保持组件的状态。 #### 第5章:表单输入验证 - **内置验证器**:详细列出了Tapestry提供的内置验证器类型,如长度...

    tapestry 集成 spring

    总结,Tapestry 与 Spring 的集成允许开发者利用两者的优点,构建出结构清晰、松耦合的 Web 应用。通过将业务逻辑和视图组件分离,Tapestry 提供了更好的用户体验和组件重用,而 Spring 则提供了强大的依赖管理和...

    tapestry 实例

    2. **组件实例化**:根据页面和组件定义,Tapestry 创建必要的组件实例。 3. **状态管理**:Tapestry 自动处理组件状态的保存和恢复,确保在多个请求间保持一致性。 4. **渲染**:Tapestry 将组件渲染成HTML响应,...

    Tapestry开发

    1. **组件化编程:**Tapestry的核心思想之一就是组件化编程,这意味着开发者可以将Web页面分解为多个可复用的组件,每个组件都可以独立开发和维护。 2. **自动表单处理:**Tapestry框架提供了自动表单处理功能,可以...

    Tapestry 重要资料 教你认识tapestry

    不同于JSP,Tapestry采用组件对象模型,提供了一种构建高度动态、交互性强的Web页面的方式。Tapestry的核心在于将Web应用分解为可重用的组件,每个组件都有明确的功能,负责生成和处理HTML请求。 **Tapestry工作...

    tapestry4.02中封装ext的TabPanel组件

    在本文中,我们将深入探讨 Tapestry 4.02 框架中封装的 Ext TabPanel 组件。Tapestry 是一个开源的Java Web 应用程序开发框架,它允许开发者使用简单的Java类和模板语言来创建动态、交互式的Web应用。而 Ext 是一个...

    extjs_tapestry.rar_extjs tapestry_extjs_tapestry_tapestry

    开发者可能已经创建了一个自定义的 Tapestry 组件,该组件利用 ExtJS 的组件和 API 来增强其功能。 3. **脚本集成**:在 Tapestry 页面模板中,可以直接嵌入 JavaScript 代码,包括 ExtJS 的库和配置。开发者可能将...

    tapestry3开发指南,带tapestry3所有jar包

    1. **页面和组件的生命周期**:每个Tapestry 3应用由一系列页面组成,页面又包含多个组件。Tapestry管理这些页面和组件的创建、初始化、渲染和销毁过程。 2. **模板和元数据**:Tapestry使用HTML模板定义页面布局,...

    Tapestry4.1.2 入门-介绍

    Tapestry的组件系统非常强大,允许开发者定义自己的可复用组件,每个组件都可以有自己的属性、事件和行为。这些组件可以通过简单的XML标记(如`&lt;span jwcid="@Insert" ...&gt;`)在页面模板中使用。ognl(Object-Graph ...

    tapestry源码 api等

    1. **Tapestry Core**: 这是Tapestry框架的基础部分,包含了核心组件、服务容器(Tapestry IoC)和页面生命周期管理。通过源码分析,我们可以理解其如何实现页面组件的渲染、事件处理和依赖注入。 2. **Tapestry ...

Global site tag (gtag.js) - Google Analytics