Struts2分页技术(超级详细版).doc_第1页
Struts2分页技术(超级详细版).doc_第2页
Struts2分页技术(超级详细版).doc_第3页
Struts2分页技术(超级详细版).doc_第4页
Struts2分页技术(超级详细版).doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Struts2分页技术Action是这样写的: public class PageAction HttpServletRequest request; public String execute () throws Exception List list = null; int totallRows; /总行数 TEmpInfoPageExtend tEmpInfoPageExtend = new TEmpInfoPageExtend(); totallRows = tEmpInfoPageExtend.getCount(); System.out.println(总行数=+totallRows); Page page = PageHelp.getPager(request, totallRows); /总页数 try list= tEmpInfoPageExtend.list(page.getPageSize(), page.getStartRow(); catch(HibernateException e) System.out.println(action里的错误:+e.getMessage(); request.setAttribute(page, page); request.setAttribute(list, list); return mapping.findForward(list); public void setServletRequest(HttpServletRequest request) this.request = request; page类:package com.telecom.DAO;public class Page private int totallRows; /总行数private int pageSize=15;/每页显示的行数private int currentPage;/当前页号private int totallPages;/总页数private int startRow;/当前页在数据库中的起始行public Page(int totallRows1) totallRows=totallRows1; totallPages=totallRows/pageSize; int mod=totallPages%pageSize; if(mod0) totallPages+; currentPage=1; startRow=0;public int getTotallPages() return totallPages;public void setTotallPages(int totallPages) this.totallPages = totallPages;public int getTotallRows() return totallRows;public void setTotallRows(int totallRows) this.totallRows = totallRows;public int getPageSize() return pageSize;public void setPageSize(int pageSize) this.pageSize = pageSize;public int getCurrentPage() return currentPage;public void setCurrentPage(int currentPage) this.currentPage = currentPage;public int getStartRow() return startRow;public void setStartRow(int startRow) this.startRow = startRow;public void frist() currentPage = 1 ; startRow = 0;public void previous()if(currentPage = 1)return;currentPage-;startRow = (currentPage - 1)* pageSize; public void next() if(currentPage totallPages)last();pageDAO:package com.telecom.DAO;import java.util.List;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import com.telecom.model.HibernateSessionFactory;public class PageDAO private Session session=null;public PageDAO()public Session getSession() session=HibernateSessionFactory.getSession(); return session;public int getCount(String pojo)String hql=select count(*) from+pojo;this.getSession();tryQuery query=getSession().createQuery(hql);List list=query.list();Integer rows=(Integer)list.get(0);return Value();catch(HibernateException e)System.out.println(e:+e.getMessage();return 0;public List getList(Query query,String pojo, int pagesize,int currow) throws HibernateExceptionList list =null;this.getSession();query.setFirstResult(currow);query.setMaxResults(pagesize);list=query.list();if(session!=null)session.close();return list;public List getClassList(Query query,int pagesize,int currow)String str=query.getQueryString().split(from);String table=str1.trim().split( );System.out.println(str:+str1);System.out.println(table+table0);return getList(query,table0,pagesize,currow);继承类TEmpInfoPageExtends:package com.telecom.DAO;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import com.telecom.model.HibernateSessionFactory;public class TEmpInfoPageExtend extends PageDAO private Session session; public TEmpInfoPageExtend() super(); public List list(int pagesize,int currow) Query query=getSession().createQuery(from TEmpInfo); List getList=getClassList(query,pagesize,currow); return getList; public Session getSession() session=HibernateSessionFactory.getSession(); return session; public int getCount()String hql=select count(*) from TEmpInfo; Query query=getSession().createQuery(hql);List list= query.list();System.out.println(-+list.get(0)+-);Integer aInteger=(Integer)list.get(0);System.out.println(count:+aIValue();return aIValue(); pageHelp:package com.telecom.DAO;import javax.servlet.http.HttpServletRequest;public class PageHelp public static Page getPager(HttpServletRequest httpServletRequest, int totallRows)/定义pager对象,用于传到页面Page pager = new Page(totallRows);/从request对象中获取当前页号String currentPage = httpServletRequest.getParameter(currentPage);/如果当前页号为空,表示首次查询该页/如果不为空,则刷新page对象,输入当前页号等信息if(currentPage != null) pager.refresh(Integer.parseInt(currentPage);/获取当前执行的方法,首页,前一页,后一页,尾页。String pagerMethod = httpServletRequest.getParameter(pageMethod);if(pagerMethod != null)if(pagerMethod.equals(first)pager.frist();else if(pagerMethod.equals(previous)pager.previous();else if(pagerMethod.equals(next)pager.previous();else if(pagerMethod.equals(last)pager.last(); return pager;配置是这样的: /show.jsp /error.jps jquery+struts2.0分页 博客分类: jqueryjQueryjsonCSSJavaScriptEXT最近要写一个分页的功能,找了很多的ajax分页资料,都觉得不是很好,本来想用ext的,可是觉得速度有点慢,在加上公司明确要求用jquery+json 实现分页,没办法,后来发现jquery的flexgrid的分页还不错。就花了点时间写了个。java代码:Controllerpublic class InfoIssueAction extends PBaseAction public InfoIssueAction();AutowiredInfoIssueService infoIssueService;List rows=new ArrayList();protected int rp;protected int page=1;protected int total;SuppressWarnings(unchecked) public String showInfoIssue()int startIndex = (page - 1) * rp; /计算查询开始数据下标 total=infoIssueService.getAllInfoIssue().size();List list=infoIssueService.getInfoIssue(startIndex, rp);for (Iterator iterator = list.iterator(); iterator.hasNext();) InfoIssue infoissue = (InfoIssue) iterator.next(); Map cellMap = new HashMap(); cellMap.put(issueid, infoissue.getIssueid(); cellMap.put(cell, new Object infoissue.getIssueid(),infoissue.getCaption(), infoissue.getAttribute(),infoissue.getMaketop(),infoissue.getIssued(); rows.add(cellMap);return listSuccess;JSON(name=rows)public List getRows() return rows;public void setRows(List rows) this.rows = rows;public int getRp() return rp;public void setRp(int rp) this.rp = rp;public int getPage() return page;public void setPage(int page) this.page = page;public int getTotal() return total;public void setTotal(int total) this.total = total;jsp代码:需要导入文件,:js代码:$(#flex1).flexigrid(url: infoIssue/InfoIssue!show.action,dataType: json,colModel : display: 编号, name : issueid, width : 60, sortable : true, align: center,display: 标题, name : caption, width : 120, sortable : true, align: left,display: 是否置顶, name : maketop, width : 120, sortable : true, align: left,display: 是否发布, name : issued, width : 120, sortable : true, align: left,buttons : name: 增加, bclass: add, onpress : test,name: 删除, bclass: delete, onpress : test,separator: true,searchitems : display: 标题, name : caption, isdefault: true,sortname: issueid,sortorder: asc,usepager: true,title: 新闻发布 ,useRp: true,rp: 1,showTableToggleBtn: true,width: 600,height: 300);function test(com,grid)if (com=删除) confirm(是否删除这 + $(.trSelected,grid).length + 条记录吗)else if (com=增加)alert(增加一条!);解决Struts分页显示 解决Struts分页显示作者:李敏强eMail: mill_学习Struts已经有2个多月了,前几天群里的朋友问我Struts分页显示的问题,觉得好像与在jsp中的差不多,但还是遇到了这样那样的问题,好不容易花了几天时间把问题都搞清楚,觉得还是写点东西跟大家分享一下的好!至于Struts的语法这里就不多介绍了,不懂的朋友可以先看网上的其他文章。一 开发环境Elicpse+Struts Studio+SqlServer2000+Tomcat。二 开发思路既然讲的是Struts,那自然离不了MVC,分页显示也是如此。1 建立适当的模型组件,对应你要查询数据库中的表。这部分由我们熟悉的javaBean来充当。并在其中建立数据库查询方法,该方法需要一个java.sql.Conntection类型的参数,并返回一个ArrayList。在本例中为 Book.java2 建立分页所需要的模型组件,也是由javaBean来充当,通过由Book中提供的ArrayList来构造。本例中为 PageBean.java.。3建立控制器组件,这部分由Struts 中的Action来实现。主要负责将实例化Book,并利用返回的ArrayList对象,构造PageBean。以及接收由视图传递而来的action参数。从而在PageBean对象中调用不同的方法,该方法返回Book 对象。最后将 Book和PageBean放入request中。本例中为PageListAction.java。4建立视图组件,这部分由jsp来充当,为了不出现java 代码,我们使用Struts提供的标签库,主要负责从request中取出刚刚放入的对象,通过反复调用PageListAction以及action参数,而实现分页显示。本例中为pagetest.jsp.5 建立并配置struts-config.xml。6 建立数据库。三 实例代码1 Book.javapackage bean;import java.sql.*;import java.util.ArrayList;/* 作者 李敏强* Struts分页显示数据Bean,对应数据库中Book表*/public class Book private String bookname; /书名private String author; /作者private String price;/价格public Book(String name,String author,String price)this.bookname=name;this.author=author;this.price=price;public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getBookname() return bookname;public void setBookname(String bookname) this.bookname = bookname;public String getPrice()return this.price;public void setPrice(String price)this.price=price;public static ArrayList getAllBook(Connection connection) String sql=select * from book; ArrayList arrayList = new ArrayList(); try Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet resultSet = statement.executeQuery(sql); System.out.println(BookBean 数据查询已完成!);while(resultSet.next()String name = resultSet.getString(name);String author = resultSet.getString(author);String price = resultSet.getString(price);System.out.println(开始数据封装:name=+name+author=+author+price=+price);Book book = new Book(name,author,price); arrayList.add(book); connection.close(); resultSet.close(); catch(SQLException e) System.out.println(数据库异常+e.toString(); return arrayList;2 PageBean.java package page; import bean.Book; import java.util.*;/* 作者 李敏强* Struts分页显示逻辑Bean*/ public class PageBean int currentPage=1;/当前页 public int totalPages=0;/总页数int pageRecorders=5;/每页5条数据int totalRows=0;/总数据数int pageStartRow=0;/每页的起始数int pageEndRow=0;/每页显示数据的终止数boolean hasNextPage=false; /是否有下一页boolean hasPreviousPage=false; /是否有前一页ArrayList arrayList;Iterator it; public PageBean() public PageBean(ArrayList arrayList)this.arrayList=arrayList;totalRows=arrayList.size();/总行数 it=arrayList.iterator(); hasPreviousPage=false;currentPage=1; if(totalRows%pageRecorders)=0)/总行数除每页行数 totalPages=totalRows/pageRecorders; /求页数 else totalPages=totalRows/pageRecorders+1;/求页数 if(currentPage=totalPages)hasNextPage=false;elsehasNextPage=true;if(totalRows0)hasPreviousPage=true;/有前一页 else hasPreviousPage=false;/没有前一页 if(currentPage=totalPages) hasNextPage=false;elsehasNextPage=true;System.out.println(参数hasNextPage=+hasNextPage);System.out.println(准备执行PageBean.getBooks();Book books=getBooks();this.description();return books;public Book getPreviouspage()currentPage=currentPage-1;if(currentPage=0)currentPage=1;if(currentPage=totalPages)hasNextPage=false;else hasNextPage=true;if(currentPage-1)0)hasPreviousPage=true;elsehasPreviousPage=false;Book books=getBooks();this.description();return books;public Book getBooks()System.out.println(pageBean.getBooks()开始执行;);if(currentPage*pageRecorderstotalRows)/判断是否为最后一页pageEndRow=currentPage*pageRecorders;pageStartRow=pageEndRow-pageRecorders;elsepageEndRow=totalRows;pageStartRow=pageRecorders*(totalPages-1);Book books=new BookpageEndRow-pageStartRow+1;System.out.println(pageStartRow=+pageStartRow);System.out.println(pageEndRow=+pageEndRow); int j=0;for(int i=pageStartRow;ipageEndRow;i+) Book book=(Book)arrayList.get(i); booksj+=book;System.out.println(要显示的页面数据已经封装,具体信息如下:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论