`
guanyq
  • 浏览: 127569 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Tapestry5 BeanModel分页实例

阅读更多

1、首先在实体包下建立实体类Book,代码如下:

java 代码
  1.   
  2. public class Book {   
  3.     private String bookName;   
  4.     private String author;   
  5.     private Double price;   
  6.     private String bookConcern;   
  7.     private Date printTime;   
  8.     private String beDeleted;   
  9.     public String getBeDeleted() {   
  10.         return beDeleted;   
  11.     }   
  12.     public void setBeDeleted(String beDeleted) {   
  13.         this.beDeleted = beDeleted;   
  14.     }   
  15.     public String getAuthor() {   
  16.         return author;   
  17.     }   
  18.     public void setAuthor(String author) {   
  19.         this.author = author;   
  20.     }   
  21.     public String getBookConcern() {   
  22.         return bookConcern;   
  23.     }   
  24.     public void setBookConcern(String bookConcern) {   
  25.         this.bookConcern = bookConcern;   
  26.     }   
  27.     public String getBookName() {   
  28.         return bookName;   
  29.     }   
  30.     public void setBookName(String bookName) {   
  31.         this.bookName = bookName;   
  32.     }   
  33.     public Double getPrice() {   
  34.         return price;   
  35.     }   
  36.     public void setPrice(Double price) {   
  37.         this.price = price;   
  38.     }   
  39.     public Date getPrintTime() {   
  40.         return printTime;   
  41.     }   
  42.     public void setPrintTime(Date printTime) {   
  43.         this.printTime = printTime;   
  44.     }   
  45. }  

2、创建页面类BookList,代码如下:

java 代码
  1. import java.util.ArrayList;   
  2. import java.util.Date;   
  3. import java.util.List;   
  4.   
  5. import org.apache.tapestry.Block;   
  6. import org.apache.tapestry.ComponentResources;   
  7. import org.apache.tapestry.annotations.Retain;   
  8. import org.apache.tapestry.beaneditor.BeanModel;   
  9. import org.apache.tapestry.ioc.annotations.Inject;   
  10. import org.apache.tapestry.services.BeanModelSource;   
  11.   
  12. import com.example.entities.Book;   
  13.   
  14. public class BookList {   
  15.     @Inject  
  16.     private BeanModelSource _modelSource;   
  17.   
  18.     @Inject  
  19.     private ComponentResources _resources;   
  20.   
  21.     @Retain  
  22.     private BeanModel _model;   
  23.   
  24.     @Inject  
  25.     private Block _noData;   
  26.   
  27.     private Book book;   
  28.   
  29.     public Book getBook() {   
  30.         return book;   
  31.     }   
  32.   
  33.     public void setBook(Book book) {   
  34.         this.book = book;   
  35.     }   
  36.   
  37.     public BeanModel getModel() {   
  38.         return _model;   
  39.     }   
  40.   
  41.     public void setModel(BeanModel model) {   
  42.         _model = model;   
  43.     }   
  44.   
  45.     public BeanModelSource getModelSource() {   
  46.         return _modelSource;   
  47.     }   
  48.   
  49.     public void setModelSource(BeanModelSource modelSource) {   
  50.         _modelSource = modelSource;   
  51.     }   
  52.   
  53.     public ComponentResources getResources() {   
  54.         return _resources;   
  55.     }   
  56.   
  57.     public void setResources(ComponentResources resources) {   
  58.         _resources = resources;   
  59.     }   
  60.   
  61.     public Block getNoData() {   
  62.         return _noData;   
  63.     }   
  64.   
  65.     public void setNoData(Block noData) {   
  66.         _noData = noData;   
  67.     }   
  68.   
  69.     /**  
  70.      * 构造页面显示的model  
  71.      *   
  72.      * @return  
  73.      */  
  74.     public BeanModel getModelForGrid() {   
  75.         // create方法描述请查看接口描述   
  76.         _model = _modelSource.create(Book.classtrue, _resources);   
  77.         _model.remove("beDeleted");// 删除该列,在页面将不被显示   
  78.         return _model;   
  79.     }   
  80.   
  81.     /**  
  82.      * 页面调用,显示图书列表  
  83.      *   
  84.      * @return  
  85.      */  
  86.     public List getBookList() {   
  87.         return bookList();   
  88.     }   
  89.   
  90.     /**  
  91.      * 循环构造图书列表,模拟数据库取出的数据 其中list的深度可以是大于1层的  
  92.      *   
  93.      * @return  
  94.      */  
  95.     private List bookList() {   
  96.         List lst = new ArrayList(100);   
  97.         for (int i = 0; i < 100; i++) {   
  98.             Book b = new Book();   
  99.             b.setAuthor("HongQi");   
  100.             b.setBeDeleted("delete");   
  101.             b.setBookConcern("国务院");// 若页面不能显示中文,将此处换成E文   
  102.             b.setBookName("《不曾屈服的小草" + i + "》");// 若页面不能显示中文,将此处换成E文   
  103.             b.setPrice(15.55 + i);   
  104.             b.setPrintTime(new Date());   
  105.             lst.add(b);   
  106.         }   
  107.         return lst;   
  108.     }   
  109. }  

 

3、创建页面文件BookList.tml,代码如下:

xml 代码
  1. <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">  
  2. <head>      
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />      
  4. <title>Samples - Book List</title>      
  5. </head>  
  6. <body>      
  7. <t:block id="nodata">没有找到数据!</t:block>      
  8. <h1>List All Books</h1>      
  9. <table t:type="Grid" model="modelForGrid" source="booklist"      
  10.     row="book"  rowsPerPage="10" empty="nodata">       
  11. </table>  
  12. </body>  
  13. </html>  

 

启动服务,访问创建好的页面,会看到你高兴的结果

 

分享到:
评论
7 楼 sidang1hao 2008-03-03  
我做的一个系统中,tapestry5.0.6 + spring + hibernate 中,home 页面中重数据库中提取 一万多行数据,并且还有的显示字段是 object.parent.fields,数度非常慢,而且也容易出现session lazy ,如果能有一个组件每次只冲数据库中提取只要显示的字段,那就 完美了。
6 楼 lean1252 2007-12-05  
这样写,tapestry5感觉就是jstl的beta版,本质看起来就是这样
5 楼 hitalang 2007-11-30  
提示错误org/apache/tapestry/beaneditor/NonVisual
4 楼 guanyq 2007-11-18  
查看详细信息的功能,可以参考增加删除按钮的帖子,http://tapestrying.group.iteye.com/group/blog/114754;
其他2个功能,我还没去做过,有空了,我也研究下
3 楼 hitalang 2007-11-18  
给记录求和怎么做
2 楼 hitalang 2007-11-17  
在此基础上如果点击其中的一条记录,看详细信息怎么做
1 楼 hitalang 2007-11-17  
接下来,给记录加序号怎么做??

相关推荐

    Tapestry5最新中文入门实例教程

    ### Tapestry5最新中文入门实例教程 #### 一、引言 Tapestry是一个使用Java语言创建Web应用程序的面向组件的开发框架。本教程旨在通过实际案例帮助读者掌握Tapestry 5的基本概念和核心功能,并体验其带来的高效开发...

    TapeStry5实例教程

    里面用详细实例说明了tapestry5的使用方法 简单 实用 详细 一看就会 在这里提醒一下大家,这个教程讲的是tapestry5而不是tapestry4,如果需要看tapestry4的话,请看我传的另外一本有关tapestry的教程,英文的那本,...

    Tapestry5实例(开发步骤)

    ### Tapestry5 实例开发详解 #### 一、前言 Tapestry 是一款用于构建企业级Java Web应用的强大框架,其第五代版本——Tapestry5,更是以其易用性和灵活性著称。本文旨在通过一个简单的实例来详细介绍如何利用...

    tapestry5中文文档

    Apache Tapestry 5 是一个基于Java的Web应用开发框架,其设计目的是为了简化Web应用程序的构建,提供组件化的页面构建、输入验证、本地化、状态管理和URL映射等功能。Tapestry 5 强调易用性,不仅对终端用户友好,...

    Tapestry 5 Building Web Applications.pdf

    ### Tapestry 5 构建 Web 应用程序 #### 一、Tapestry 5 概览 Tapestry 5 是一个基于 Java 的开源 Web 开发框架,旨在简化 Web 应用程序的开发过程。它通过提供一系列高级抽象和组件化方法,帮助开发者更加高效地...

    tapestry文件下载实例

    基于tapestry5.0的文件下载实例,已经完美实现,请参考。

    Tapestry 5.1 实例教程(全部)

    **Tapestry 5.1 实例教程全览** Tapestry 5.1 是一个强大的Java Web应用程序框架,由Apache软件基金会维护。这个框架以其组件化、类型安全的URL映射、内置的依赖注入以及丰富的功能而备受赞誉。本教程全面地涵盖了...

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    Tapestry5和jQuery集成tapestry5-jquery.zip

    Tapestry5和jQuery集成.使用jQuery以极少的兼容问题完全替换Prototype 和 Scriptaculous库 标签:tapestry5

    Tapestry5最新中文教程

    Apache Tapestry 5 是一个基于Java的开源Web应用程序框架,其设计目标是提供一个面向组件的开发环境,简化Web应用的构建。这个框架的核心特点包括输入验证、本地化/国际化、状态管理和URL处理等,旨在提高用户体验和...

    Tapestry 5 電子書

    《Tapestry 5 電子書》是关于Java Web开发框架Tapestry 5的一本详尽指南,由Packt Publishing在2007年出版。这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用...

    tapestry5.1.0.5中文实例教程

    tapestry5.1.0.5中文实例教程,对于目前国内tapestry学习资源紧缺的情况,可谓填补了中文学习最大的空白,对于想学习tapestry5框架的人来说可谓字字如金,内容详尽,由浅入深,pdf格式

    Tapestry5.1实例教程及可运行的实例代码

    Tapestry5实例教程文档及实例代码,已经教程中除component工程外的其它几个工程都已整合在HelloTapestry工程下.可直接将工程部置在本地tomcat服务器上,通过http://localhost:8080/HelloTapestry访问。

    Tapestry 5开发指南(英文)

    Tapestry 5是一款强大的Java Web应用程序框架,由Apache软件基金会维护。它提供了一种声明式编程模型,使得开发者能够创建动态、响应式的Web应用,同时保持代码的整洁和易于维护。本指南将深入探讨Tapestry 5的核心...

    tapestry5 自定义组件

    1. **组件类**:在创建自定义组件时,你需要继承 `tapestry5.Component` 类或者其子类,如 `tapestry5.Block` 或 `tapestry5.MarkupWriter`。在这个例子中,我们可能会创建一个名为 `MyEmail` 的类,它包含发送邮件...

    tapestry 实例

    **Tapestry 实例详解** Tapestry 是一个开源的Java Web 应用程序框架,由Apache软件基金会维护。它采用组件化的方式构建Web应用,提供了丰富的功能和强大的性能优化,使得开发人员能够更加专注于业务逻辑,而不是...

    Tapestry5开发文档手册.doc

    Apache Tapestry 5 是一个基于Java的Web应用开发框架,其核心理念是组件化开发,通过构建组件来创建页面。Tapestry 5 提供了一系列的功能,包括输入验证、本地化/国际化、状态管理和URL映射,使得开发者能更高效地...

    Tapestry_5[1].1_实例教程

    《Tapestry 5.1 实例教程》是一份详细的教学资料,专注于介绍Apache Tapestry 5.1这一强大的Java Web开发框架。Tapestry 5是一个开源的、基于组件的MVC框架,它提供了丰富的功能,使得开发人员能够更高效、更简洁地...

Global site tag (gtag.js) - Google Analytics