`
roruby
  • 浏览: 321658 次
  • 来自: ...
社区版块
存档分类
最新评论

struts分页的一种实现!(一)

阅读更多
 

    看到大家对struts的学习热情很高,而且这方面的资料很少,看着大家很累,所以发发善心,看到很好的一种分页方法,就贴出来大家共同分享!(原作在javaworld),有不完善的地方,希望大家改正!!!

使用一个页面控制类,它记录页面信息,如上页,下页,当前页等。在查询的Action中,将这个控制类和查询条件一起传递给数据库访问bean,然后将这两个参数保存在用户session中。在分页控制Action中,利用接收到的分页参数调用数据库访问的bean.

 (1)分页控制类<!----><o:p></o:p>

package com.tower.util;
public class PageController {
    int totalRowsAmount; file://总行数
    boolean rowsAmountSet; file://是否设置过totalRowsAmount
    int pageSize=2;   file://每页行数
    int currentPage=1; file://当前页码
    int nextPage;
    int previousPage;
    int totalPages;  file://总页数
    boolean hasNext;  file://是否有下一页
    boolean hasPrevious; file://是否有前一页
    String description;
    int pageStartRow;
    int pageEndRow;
   
    public PageController(int totalRows){
  setTotalRowsAmount(totalRows);
    }
    public PageController(){}
 public void setTotalRowsAmount(int i) {
  if(!this.rowsAmountSet){
   totalRowsAmount = i;
   totalPages=totalRowsAmount/pageSize+1;
      setCurrentPage(1);
   this.rowsAmountSet=true;
  }
  
 }
 public void setCurrentPage(int i) {
  currentPage = i;
  nextPage=currentPage+1;
  previousPage=currentPage-1;
  file://计算当前页开始行和结束行
  if(currentPage*pageSize<totalRowsAmount){
      pageEndRow=currentPage*pageSize;
      pageStartRow=pageEndRow-pageSize+1;
     
  }else{
      pageEndRow=totalRowsAmount;
      pageStartRow=pageSize*(totalPages-1)+1;
  }
  if (nextPage>totalPages){
      hasNext=false;
  }else{
   hasNext=true;
  }
  if(previousPage==0){
     hasPrevious=false;
  }else{
   hasPrevious=true;
  };
  System.out.println(this.description());
 }
 public int getCurrentPage() {
  return currentPage;
 }
 public boolean isHasNext() {
  return hasNext;
 }
 public boolean isHasPrevious() {
  return hasPrevious;
 }
 public int getNextPage() {
  return nextPage;
 }
 public int getPageSize() {
  return pageSize;
 }
 public int getPreviousPage() {
  return previousPage;
 }
 public int getTotalPages() {
  return totalPages;
 }
 public int getTotalRowsAmount() {
  return totalRowsAmount;
 }
 public void setHasNext(boolean b) {
  hasNext = b;
 }
 public void setHasPrevious(boolean b) {
  hasPrevious = b;
 }
 public void setNextPage(int i) {
  nextPage = i;
 }
 public void setPageSize(int i) {
  pageSize = i;
 }
 public void setPreviousPage(int i) {
  previousPage = i;
 }
 public void setTotalPages(int i) {
  totalPages = i;
 }
 public int getPageEndRow() {
  return pageEndRow;
 }
 public int getPageStartRow() {
  return pageStartRow;
 }

 public String getDescription(){
    String description="Total:"+this.getTotalRowsAmount()+
    " items "+this.getTotalPages() +" pages";
//    this.currentPage+" Previous "+this.hasPrevious +
//    " Next:"+this.hasNext+
//    " start row:"+this.pageStartRow+
//    " end row:"+this.pageEndRow;
    return description;
 }
 
 public String description(){
    String description="Total:"+this.getTotalRowsAmount()+
    " items "+this.getTotalPages() +" pages,Current page:"+
    this.currentPage+" Previous "+this.hasPrevious +
    " Next:"+this.hasNext+
    " start row:"+this.pageStartRow+
    " end row:"+this.pageEndRow;
    return description;
 }
 
 
 public static void main(String args[]){
  PageController pc=new PageController(3);
        System.out.println(pc.getDescription());
//        pc.setCurrentPage(2);
//  System.out.println(pc.description());
//  pc.setCurrentPage(3);
//  System.out.println(pc.description());
 }

分享到:
评论

相关推荐

    struts2分页代码的示例

    在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我用Struts2做的一个分页显示...

    Struts2实现分页代码

    在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我用Struts2做的一个分页显示...

    用JB2006制作的Struts分页工程源文件

    一、此为用JB2006制作的分页工程 二、提供了MS SERVER 2000数据库MDF文 三、一次性提出数据,页面分页,个人感觉适合初做分页的人员,改造的空间较大,提供了一种思路。

    spring+struts+hibernate分页应用事例

    在开发三大框架(struts hibernate spring)应用项目的时候,往往使用到分页,本文介绍了一种分页的方法,你可以参考该方法摸索自己的一种方法!

    用Struts、Hibernate和display超简单实现分页

    说明: 一、含演示数据库建立脚本(较简单) 二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多和很多判断,简单到只需要几行语句: ... 三、由于使用了display,所以自动实现了...

    设计一个简单的网上名片管理系统,实现struts2增删改查等操作

    1.需要完成的任务 :基于Struts2+JDBC+DAO,设计一个简单的网上名片管理系统,实现名片的增、删、改、查等操作 (1) 户登录与注册  用户登录:登录时,如果用户名和密码正确,进入系统主页面;  用户注册:新...

    论文研究-一种松耦合高复用MVC模式的Web分页实现.pdf

    MVC设计模式下常见Web分页方案存在一些不足,针对降低耦合性和提高复用性提出了改进方案,并通过在数据层引入Hibernate框架,服务层引入Bridge桥接模式,表示层引入Struts框架对改进方案加以实现。

    jsp分页组件

    支持跳转到jsp和跳转到Action(struts架构)两种类型,支持单选或者多选列,支持传Vector 或者sql语句,支持数据库后端分页.... 具体参见源码包中“使用说明.txt”,里面有详细的设置步骤,使用示例源码

    看我的自定义模仿Struts2的框架..绝对值得一看

    自定义模仿Struts2的框架,用配置文件配置转向的路径,可配置执行的方法名,自动提取表单的值填充到action,自动把action中的...自定义分页标签,只有一个可选的属性,提供一种思路 登陆过滤器,对是否登陆过进行控制

    ssh2+pager-taglib实现自动分页

    实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已...

    JSP MySQL真分页.rar

    这是一个开源的,可供下载原码,这是为了宣传我们团队的一种办法)。 我的QQ是:982670932 希望大家能和我们团队一起学习和交流 在此我们团队有信心有实力承接各种项目。 用法:不用写连接数据库等多余代码(在...

    display分页+ssh三种框架集成(一个简单的例子)

    display分页+ssh三种框架集成(一个简单的例子) 如果在本机上部署好了访问http://localhost:8080/xujie/buyInfo.do?method=findAll就可以看到效果了。

    基于MVC 模式的分页组件应用 (2011年)

    针对Web 数据库系统中的数据分页问题,提出一种基于模型-视图-控制器(MVC)模式的三层分页组件。在数据层中引入Java 持久化API 和Spring 技术,在业务逻辑层中引入泛型DAO 模式和桥接模式,在显示层中引入JSP 和...

    Java求职面试宝典各大公司常考知识点

    4.7. struts如何实现国际化 9 4.8. struts2.0的常用标签有哪些 10 4.9. struts中怎么配置form-bean、action、tiles 10 4.10. logic标签有哪几个? 12 4.11. action是单实例还是多实例,为什么? 13 4.12. ...

    java面试题大全--java基础,struts,spring,ejb等

    2.J2EE是一种技术还是一种平台,他提供了那些技术。 3.什么是Application Server,它有什么功能和优点。 4.简单介绍连接池的优点和原理。 5.Web.xml的作用 四、其他 1.Web安全性的考虑(表单验证、浏览器Basic方式...

    j2ee 项 目 中 的 分 页 问 题

    里面提供了两种分页方式,一个适合于struts项目的,一个适合于jsp+servlet项目的;尤其后都做了很好的封装,可以随意移植使用,时面都是完整项目发布便可以看到代码,数据库脚本我也给了,这可是我整理一下午的成就,所以8分...

    基于SSH三大框架项目管理系统

    1,该系统使用SSH三大框架实现,Struts2主要用于流程控制、Spring的控制反转能起到解耦合的作用、Hibernate是一个优秀的ORM框架主要用于数据持久化 2,登录模块分为三种角色业务员、研究员、管理员 业务员:主要负责...

    java面试题

    51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics