捷凌网安JAVA频道
捷凌IT教育
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME 开源技术 其他技术 论坛
 您现在的位置: 捷凌网安 >> Java >> 核心技术 >> 高级编程 >> 正文
Tapestry组件使用总结

作者:佚名 责任编辑:左决 点击数: 更新时间:2008-4-30 2:42:18

关键字: 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接口,并实现一个方法.
    java代码 复制代码

       1. LogDetails.java
       2. public abstract class LogDetails extends BasePage implements IExternalPage {
       3.
       4.   ......
       5.
       6. public void activateExternalPage(Object[] parameters,  IRequestCycle cycle){
       7. this.setLogId((Integer) parameters[0]); //获取传递进来的参数并执行所需操作
       8. }
       9. }

    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>
    java代码 复制代码

       1. Log.java
       2. public IPage logSelect(Integer id){
       3. LogDetails logDetails = getLogDetails();
       4. logDetails.setLogId(id);
       5. return logDetails;
       6. }

    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}">
    java代码 复制代码

       1. Log.java
       2. public IPage logSelect(IRequestCycle cycle){
       3. IPage logDetails = cycle.getPage("LogDetails");
       4. cycle.activate(logDetails);
       5. }

    Log.java
    public IPage logSelect(IRequestCycle cycle){
    IPage logDetails = cycle.getPage("LogDetails");
    cycle.activate(logDetails);
    }


    java代码 复制代码

       1. LogDetails.java
       2. public void beginResponse(IMarkupWriter wrITer, IRequestCycle cycle) {
       3. Object[] logObj = cycle.getListenerParameters();
       4. int logId = ((Integer)logObj[0]).intValue();
       5. ...
       6. }

    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,尚未涉及.

  • 上一篇文章:

  • 下一篇文章:
  •  
     最进更新
    普通文章J2SE实现windows读取网卡的物05-11
    普通文章Scala—Java的避难所之main(05-11
    普通文章Spring数据源的灵活配置巧应05-11
    普通文章Spring 与 Log4J 进行动态日05-11
    普通文章Heritrix的多线程ToeThread和05-11
    普通文章应用spring示例开发网站构思05-11
    普通文章Spring 数据源配置与应用05-11
    普通文章Spring中的四种声明式事务的05-11
    普通文章Hibernate+Spring搞定Clob、05-11
    普通文章Hibernate的映射关联关系05-11
     
     推荐文章
    推荐文章Java技术开源搜索引擎04-30
    推荐文章Eclipse中建立自己的JUnit测04-30
    推荐文章Eclipse 3.3上安装jadclipse04-30
    推荐文章spring 编程入门十大问题解答04-30
    推荐文章Java编程中Spring的一些负面04-30
    推荐文章Java应用中Hibernate对多表关04-30
    推荐文章关于hibernate的缓存和CRUD04-30
    推荐文章基于Struts1.2的动态多文件上04-30
    推荐文章演示Struts2实现简单上传代码04-30
    推荐文章J2EE学习笔记--Struts初步认04-30
     
     热点文章
    普通文章J2SE实现windows读取网卡的物05-11
    普通文章Scala—Java的避难所之main(05-11
    普通文章Spring数据源的灵活配置巧应05-11
    普通文章Spring 与 Log4J 进行动态日05-11
    普通文章Heritrix的多线程ToeThread和05-11
    普通文章应用spring示例开发网站构思05-11
    普通文章Spring 数据源配置与应用05-11
    普通文章Spring中的四种声明式事务的05-11
    普通文章Hibernate+Spring搞定Clob、05-11
    普通文章Hibernate的映射关联关系05-11

    | 设为首页 | 加入收藏 | 联系站长 | 广告服务 | 友情链接 | 版权申明 | 网站地图 |

    在线交流 捷凌网安主群:51649627
    Copyright 2007-2008 © 捷凌网安. All rights reserved.
    备案序号:蜀ICP备08001812号