`
guanyq
  • 浏览: 125853 次
  • 性别: 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的使用方法 简单 实用 详细 一看就会 在这里提醒一下大家,这个教程讲的是tapestry5而不是tapestry4,如果需要看tapestry4的话,请看我传的另外一本有关tapestry的教程,英文的那本,...

    Tapestry5最新中文入门实例教程

    本文介绍Tapestry框架版本5。本文利用Tapestry 5开发一个简单的具有创建/读/更新/删除功能的应用,在创建这个应用的过程中,本文体会到Tapestry带来的开发效率的提升。从多方面来讲解 Tapestry应用,比如应用的...

    tapestry 实例

    tapestry 实例tapestry 实例tapestry 实例tapestry 实例

    Tapestry5实例(开发步骤)

    Tapestry5实例(开发步骤),环境搭建后必看的实例。。。

    Tapestry+5.1+实例教程

    Tapestry 不必关心链接!不必关心请求(http request)到了哪里!不必关心响应(http response)要转向哪里!Tapestry构建于底层的request-resonse模式,基于Servlet技术,抽象出面向组件开发的模型。Tapestry关心的是:...

    tapestry文件下载实例

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

    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中文文档

    tapestry5组件说明使用及登陆修改等简单实例

    tapestry5.1.0.5中文实例教程

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

    Tapestry 5.1 实例教程(全部)

    Tapestry 5.1 实例教程(全部) Tapestry 5.1入门教程,包含基础入门及一些高级组件的使用教程,是学习Tapestry5.1不可多得的教程!

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

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

    tapestry教程资料文档合集

    Tapestry5最新中文教程.doc 作者 Renat Zubairov & Igor Drobiazko译者 沙晓兰 发布于 2008年7月2日 下午9时30分 社区 Java 主题 Web框架 ----------------------------------------- Tapestry5.1实例教程.pdf ...

    Tapestry 5 Building Web Applications.pdf

    Tapestry5 英文版入门技术指导!

    Tapestry5开发环境搭建(Eclipse)

    Tapestry5开发环境搭建(Eclipse),包括服务器搭建。。。

    Tapestry 5开发指南(英文)

    Tapestry 5开发指南(英文) Tapestry 5开发指南(英文) Tapestry 5开发指南(英文) Tapestry 5开发指南(英文)

    Tapestry 5.1 实例教程

    Tapestry 5.1 实例教程 前三章

    Tapestry 5 電子書

    最新Tapestry 5 電子書

    Tapestry 5介绍

    老外的一个ppt介绍Tapestry 5

Global site tag (gtag.js) - Google Analytics