zoukankan      html  css  js  c++  java
  • struts分页 简单飞扬

    //学struts分页的时候做的 对数据库所有数据的一个分页显示    大概是不能正常运行了

    fenye.jsp
    <%@page pageEncoding="gb2312" %>
    <html>
    <body  text=green ><center><br><br><br><br><br>
        <a href="fenye.do?act=fenye">对数据库内所有的表进行分页</a>
    </body>
    </html>


    struts-config.xml

    <?xml version="1.0" encoding="gb2312" ?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    <struts-config>
        <form-beans>
            <form-bean name="depForm" type="form.DepForm" />
            <form-bean name="depupForm" type="form.DepupForm" />
            <form-bean name="depreForm" type="form.DepReplaceForm" />
            <form-bean name="pszcForm" type="form.PszcForm" />
        </form-beans>
        <action-mappings>
            <!--==================================部门 查询结果 跳转到 修改=== -->
            <action name="depupForm" type="action.I" path="/depup"
                scope="session" parameter="su">
                <forward name="dereplace" path="/dereplace.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>
            <!--================================部门 查询==================  -->
            <action name="depForm" type="action.I" path="/dep"
                scope="session" parameter="str">
                <forward name="cg" path="/cg.jsp" />
                <forward name="fail" path="/fail.jsp" />
                <forward name="desu" path="/desu.jsp" />
            </action>
            <!-- =============================部门修改===================== -->
            <action name="depupForm" type="action.I" path="/depre"
                scope="session" parameter="str">
                <forward name="dereplace" path="/dereplace.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>
                <!-- ========================= 分页技术========================  -->    
            <action name="depupForm" type="page.PageListAction" path="/haha"
                scope="session">
                <forward name="pageresult" path="/pageresult.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>
            <!--- ======================帐号管理-注册====================== -->
            <action name="depupForm" type="action.I" path="/ps"
                scope="session" parameter="pass">
                <forward name="zcre" path="/zcre.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>
                <!--================= 帐号注册-提交===========================-->
            <action name="pszcForm" type="action.I" path="/pszc"
                scope="session" parameter="pazc">
                <forward name="success" path="/success.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>
                        <!-- ========================= 分页技术========================  -->    
            <action name="depupForm" type="page.PageListAction" path="/fenye"
                scope="session">
                <forward name="main" path="/main.jsp" />
                <forward name="fail" path="/fail.jsp" />
            </action>

        </action-mappings>

        <message-resources parameter="" />
    </struts-config>

    PageListAction
    package page;

    import org.apache.struts.action.*;
    import action.F;
    import action.Jc;

    import javax.servlet.http.*;
    import java.util.*;
    public class PageListAction extends Action {

        List arrayList = new ArrayList();
        PageBean pd;
        
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
        throws Exception {
            String driver_url =request.getRemoteAddr();
            String act;
            String action;
            String table;
            act=request.getParameter("act");
            table = request.getParameter("table");
            action = request.getParameter("action");
            if(act==null||act.equals(""))
            {

            /** 如果action 为空 ,即:没有点击上一页,也没有点击下一页_____判断此为页面的第一次连接 */
            if (action == null || action.equals("null")) {

                try {
                    arrayList = PageBean.getAllBook(table);
                } catch (Exception e) {
                    System.err.println(e);
                }
                /** 初次连接时,设置当前页数为1 ,以后点击上一页 或者下一页时 根据当前页数 进行 ++或者--操作 */
                pd = new PageBean(arrayList,table);
                List list =new ArrayList();
                list = pd.getBooks();
    //        if(list == null || list .size()<=0){
    //            return mapping.findForward("fail");
    //    
    //            }else{
                    
                    //页面内容
                    request.setAttribute("list", pd.getBooks());
                    
                    //有关当前页面的信息
                    request.setAttribute("page", pd);
                    
                    //得到此表所有列名
                    request.setAttribute("lts", new F().getList(table));
    //            }
            }

            else {
                /** 对 "点击下一页" 的处理 */
                if (action == "nextPage" || action.equals("nextPage")) {
                    List list = pd.getNextPage();
                    request.setAttribute("list", list);
                    request.setAttribute("page", pd);
                }
                /** 对 "点击上一页" 的处理 */
                if (action == "previousPage" || action.equals("previousPage")) {
                    List list = pd.getPreviousPage();
                    request.setAttribute("list", list);
                    request.setAttribute("page", pd);
                }
            }
            }
            else if(act == "fenye" || act.equals("fenye")){
                
                List list =new ArrayList();
                list = PageBean.getAllTables();
                request.setAttribute("list", PageBean.getAllTables());
                act=null;
                return mapping.findForward("main");
            
            }
            return mapping.findForward("pageresult");
        
        }
    }



    /**这个是pagebean类,主要负责分页算法和逻辑处理*/
    package page;

    import action.Jc;

    import java.sql.ResultSet;
    import java.util.*;

    public class PageBean {

        int currentPage = 1;// 当前页数

        String table="";
        
        public int totalPages = 0;// 总页数

        int pageRecorders = 15;// 每页显示行数

        int totalRows = 0;// 总行数

        int pageStartRow = 0;// 每页的起始行数

        int pageEndRow;// 每页的终止行数

        boolean hasNextPage = false;// 是否有下一页

        boolean hasPreviousPage = false;// 是否有前一页

        List arrayList;

        Iterator it;

        public PageBean(List arrayList,String table) {
            this.table = table ;
            /**根据list 对第一次连接进行设置:
             * |总页数|是否有上下页|起始行数|
             * */  
            this.arrayList = arrayList;// 获得传来的list

            totalRows = arrayList.size();// 总行数 = list 的长度

            it = arrayList.iterator();// 迭代器

            hasPreviousPage = false;// 是否有前一页

            currentPage = 1;// 当前页数
            
                
            if ((totalRows % pageRecorders) == 0) {// 如果 总行数 %每页显示行数 == 0

                totalPages = totalRows / pageRecorders;// 总页数 = 总行数/每页显示行数

            }

            else {

                totalPages = totalRows / pageRecorders + 1; // 总页数 = ( 总行数/每页显示行数)+1

            }
            
            /**根据当前页数 和总页数  判断 是否有下一页*/
            if (currentPage >= totalPages) { // 如果当前页数 > = 总页数

                hasNextPage = false; // 没有下一一页

            }

            else {

                hasNextPage = true; // 有下一页

            }

            if (totalRows < pageRecorders) { // 如果 总行数小于每页显示行数

                this.pageStartRow = 0;// 起始行数= 0

                this.pageEndRow = totalRows;// 终止行数 =总行数

            }

            else {// 如果 总行数 大于 每页显示行数

                this.pageStartRow = 0;// 起始行数= 0

                this.pageEndRow = pageRecorders;// 终止行数 =每页显示数

            }

        }

        public void setCurrentPage(int currentPage) {

            this.currentPage = currentPage;// 设置当前页数

        }

        public void setPageRecorders(int pageRecorders) {

            this.pageRecorders = pageRecorders; // 设置每页显示数

        }

        public void setHasNextPage(boolean hasNextPage) {

            this.hasNextPage = hasNextPage;// 设置 是否有下一页

        }

        public void setHasPreviosPage(boolean hasPreviosPage) {

            this.hasPreviousPage = hasPreviousPage; // 设置是否有前一页

        }

        public String getCurrentPage() {

            return this.toString(currentPage);// 获得当前页数

        }

        public String getTotalPages() {

            return this.toString(totalPages); // 获得总页数

        }

        public String getTotalRow() {

            return this.toString(totalRows);// 获得总行数

        }

        public int getPageRecorders() {

            return pageRecorders;// 获得每页显示数

        }

        public int getPageEndRow() {

            return pageEndRow;// 获得每页的终止数

        }

        public int getPageStartRow() {

            return pageStartRow;// 获得每页的起始数

        }

        public boolean isHasNextPage() {

            return hasNextPage; // 判断 是否有下一页

        }

        public boolean isHasPreviousPage() {

            return hasPreviousPage; // 判断 是否有上一页

        }
        /**
         * 下面的两个方法  是处理        点击(上一页|下一页)
         * 首先获得 此页的页数 并判断是否有上下页
        然后 根据页数,返回此页的信息*/
        public List getNextPage() {// 获得下一页

            currentPage = currentPage + 1;// 设置下一页的(当前页数)=当前页数+1

            if ((currentPage - 1) > 0) {// 如果当前页数大于 1

                hasPreviousPage = true;// 有上一页

            }

            else { // 如果当前页数小于等于 1

                hasPreviousPage = false; // 没有上一页

            }

            if (currentPage >= totalPages) { // 如果 当前页数 大于 总页数

                hasNextPage = false;// 没有下一页

            }

            else {// 如果 当前页数 小于 总页数

                hasNextPage = true;// 有下一页

            }

            List list= getBooks();

            return list;         

        }

        public List getPreviousPage() {// 获得上一页

            currentPage = currentPage - 1; // 当前页数 - 1

            if (currentPage == 0) {// 如果当前页数为 0

                currentPage = 1;// 当前页数 = 1

            }

            if (currentPage >= totalPages) {// 如果 当前页数 大于 总页数

                hasNextPage = false;// 没有下一页

            }

            else {// 如果 当前页数 小于 总页数

                hasNextPage = true;// 有下一页

            }

            if ((currentPage - 1) > 0) { // 如果当前页数大于 1

                hasPreviousPage = true;// 有 上一页

            }

            else {// 如果当前页数小于 1

                hasPreviousPage = false; // 没有上一页

            }

            List list= getBooks();

            return list;

        }

        /**
         * .----------------------------------------------------------------------------------------------------------- * * *
         * -----------------------------------------------------------------------------------------------------------
         */

        public List getBooks() {/** 此方法是获得一个(含有当前页 所有信息的)list*/
            if (currentPage * pageRecorders < totalRows) {// 如果当前页数 * 每页显示行数 < 总行数

                pageEndRow = currentPage * pageRecorders;// 每页的终止行数 = 页数 * 每页显示行数

                pageStartRow = pageEndRow - pageRecorders;// 每页的起始行数 =每页的终止行数 -每页显示行数

            }

            else {// 如果当前页数 * 每页显示行数 >= 总行数

                pageEndRow = totalRows;// 每页的终止行数 = 总行数

                pageStartRow = pageRecorders * (totalPages - 1);// 每页的起始行数 =每页显示行数 *( 总页数 - 1 )

            }
                List list=new ArrayList();
            for (int i = pageStartRow; i < pageEndRow; i++) {
                if(arrayList.size()==0){
                    System.err.println("查询结果显示,此表中 没有任何信息!");
                    return null;
                }
                list.add(arrayList.get(i)) ;// 把每一行 放入另一list
            }

            return list;
        }

        public String toString(int temp) {

            String str = Integer.toString(temp);// 把数字转成字符型

            return str;

        }

        public String getTable() {
            return table;
        }

        public void setTable(String table) {
            this.table = table;
        }

        public int getTotalRows() {
            return totalRows;
        }

        public void setTotalRows(int totalRows) {
            this.totalRows = totalRows;
        }

        public void setHasPreviousPage(boolean hasPreviousPage) {
            this.hasPreviousPage = hasPreviousPage;
        }

        public void setPageEndRow(int pageEndRow) {
            this.pageEndRow = pageEndRow;
        }

        public void setPageStartRow(int pageStartRow) {
            this.pageStartRow = pageStartRow;
        }

        public void setTotalPages(int totalPages) {
            this.totalPages = totalPages;
        }
        public static List getAllBook(String table) throws Exception {

            String sql = "select * from " + table;
            
            return Jc.getResult(sql,table);
        }
        
        
        public static List getAllTables()throws Exception{
            List list= new ArrayList();
            
            String sql = "select * from information_schema.tables";
            ResultSet rs = Jc.getResultSet(sql);
            
            while(rs.next()){
                String a = rs.getString("TABLE_SCHEMA");
                 String b =rs.getString("TABLE_NAME");
                 list.add(a+"."+b);
            }
            Jc.close();
            return list;
        }
        
    }






    数据库连接类



  • 相关阅读:
    LintCode Python 简单级题目 488.快乐数
    LintCode Python 简单级题目 100.删除排序数组中的重复数字 101.删除排序数组中的重复数字II
    LintCode Python 简单级题目 373.奇偶分割数组
    LintCode Python 简单级题目 39.恢复旋转排序数组
    LintCode Python 简单级题目 35.翻转链表
    LintCode Python 简单级题目 451.两两交换链表中的节点
    LintCode Python 简单级题目 174.删除链表中倒数第n个节点
    aws查看官方centos镜像imageid
    linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计
    php配置优化-生产环境应用版
  • 原文地址:https://www.cnblogs.com/jiandanfy/p/1091970.html
Copyright © 2011-2022 走看看