• java后台分页实例一


    后台框架:jfinal + velocity、前台框架:jquery

     页面

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <link rel="stylesheet" type="text/css" href="./student.css"/>
        <script type="text/javascript" src="./jquery.min.js"></script>
        <script type="text/javascript" src="./common.js"></script>
        <style >
           .pager a{display:inline-block;background: red;color:#ffffff;padding: 10px;text-decoration: none;} 
       </style>
    </head>
    
    <body>
                    <table cellpadding="0" cellspacing="0">
                        <tr>
                            <th>序号</th>
                            <th>姓名</th>
                            <th>性别</th>
                        </tr>
                      #foreach($!stu in $!pager.list)
                        <tr>
                            <td>
                               $velocityCount
                            </td>
                            <td>
                                $!stu.name
                            </td>
                            <td>
                                $!stu.sex
                            </td>
                        </tr>
                        #end
                    </table>
                </div>
                
              <div class ="pager">
                <a href="javascript:void(0);" onclick="firstPage();" >首页</a>
                <a href="javascript:void(0);" onclick="previousPage();" >上一页</a>
                <a href="javascript:void(0);" onclick="nextPage();" >下一页</a>
                <a href="javascript:void(0);" onclick="lastPage();" >尾页</a>
             </div>
             
             <div class="pager-info">
             当前页数:<span>$!pager.currentPage</span>
             总记录数:<span>$!pager.totalRecord</span>
             总记页数:<span>$!pager.totalPage</span>
             </div>
              
           
           <script type="text/javascript">
    
                var currentPage = "$!pager.currentPage";
                if(!currentPage){
                  currentPage = 1;
                }
                var totalPage = "$!pager.totalPage";
                
                //首页
                function firstPage(){
                  if(currentPage == 1){
                    alert("已经是第一页数据");
                    return 
                  }else{
                    common.requestForm({
                    url:"/oaweb/datatask/paginate",
                    data:{pageSize:5,pageNo:1}
                    });
                  }
                }
                
                //上一页
                function previousPage(){
                  if(currentPage == 1){
                    alert("已经是第一页数据");
                    return 
                  }else{
                    common.requestForm({
                    url:"/oaweb/datatask/paginate",
                    data:{pageSize:5,pageNo:parseInt(currentPage)-1}
                    });
                  }
                }
                
                //下一页
                function nextPage(){
                  if(currentPage == totalPage){
                    alert("已经是最后一页数据");
                    return 
                  }else{
                    common.requestForm({
                    url:"/oaweb/datatask/paginate",
                    data:{pageSize:5,pageNo:parseInt(currentPage)+1}
                    });
                  }
                }
                
                //尾页
                function lastPage(){
                  if(currentPage == totalPage){
                    alert("已经是最后一页数据");
                    return 
                  }else{
                    common.requestForm({
                    url:"/oaweb/datatask/paginate",
                    data:{pageSize:5,pageNo:totalPage}
                    });
                  }
                }
                
                </script>
    </body>
    </html>

    js封装请求方法(common.js)

    function Common(){
    }
    
    Common.prototype = {
    requestForm:function(option) {
            var _option = {
                url : "",
                data : {}
            };
            $.extend(_option, option);
            var form = $("<form>").attr("action",_option.url).attr("method","POST").appendTo($("body"));
            $.each(_option.data,function(k,v){
                $("<input>").attr("type","hidden").attr("name",k).attr("value",v).appendTo(form)
            });
            form.submit();
        }
    }

    Controller

    public class StudentController extends Controller{
    
    public void paginate(){
            Integer pageNo = getParaToInt("pageNo");
            pageNo = pageNo==null?1:pageNo;
            Integer pageSize =getParaToInt("pageSize");
            pageSize = pageSize==null?5:pageSize;
            Record record = new Record();
            Pager<Record> pager = StudentService.myPaginate(record,pageNo,pageSize);
            setAttr("page", pager);
            render("/school/html/student/student_index.htm");
        }
        
    }

    Service

    public class StudentService{
    
    public static Pager<Record> myPaginate(Record record,int pageNo,int pageSize){
            List<Record> list = getDataList();
            Pager<Record> pager = new Pager<Record>(pageNo,pageSize,list);
            return pager;
        }
        
    }

     Pager类封装分页信息

    import java.util.List;
    
    public class Pager<T> {
        
        private Integer pageSize;
        
        private Integer totalRecord;
        
        private Integer totalPage;
        
        private Integer currentPage;
        
        private List<T> list;
        
        public Integer getPageSize() {
            return pageSize;
        }
    
        public void setPageSize(Integer pageSize) {
            this.pageSize = pageSize;
        }
    
        public Integer getTotalRecord() {
            return totalRecord;
        }
    
        public void setTotalRecord(Integer totalRecord) {
            this.totalRecord = totalRecord;
        }
    
        public Integer getTotalPage() {
            return totalPage;
        }
    
        public void setTotalPage(Integer totalPage) {
            this.totalPage = totalPage;
        }
    
        public Integer getCurrentPage() {
            return currentPage;
        }
    
        public void setCurrentPage(Integer currentPage) {
            this.currentPage = currentPage;
        }
    
        public List<T> getList() {
            return list;
        }
    
        public void setList(List<T> list) {
            this.list = list;
        }
    
    
        public Pager(Integer pageNo,Integer pageSize,List<T> sourceList){
             if(sourceList==null){
                 return;
             }
             
             //总记录数
             this.totalRecord = sourceList.size();
             
             //每页显示多小条数据
             this.pageSize = pageSize;
             
             //总页数
             this.totalPage = this.totalRecord % this.pageSize == 0?this.totalRecord/this.pageSize:this.totalRecord/this.pageSize+1;
             
             //当前第几页
             if(this.totalPage < pageNo){
                 this.currentPage = this.totalPage;
             }else{
                 this.currentPage = pageNo;
             }
             
             
             //起始索引
             Integer fromIndex = this.pageSize * (this.currentPage - 1);
             
             //结束索引
             Integer endIndex = null;
             if(this.pageSize * this.currentPage >this.totalRecord){
                 endIndex = this.totalRecord;
             }else{
                 endIndex = this.pageSize * this.currentPage;
             }
             
             this.list = sourceList.subList(fromIndex, endIndex);
        }
    
    }

    总结:

    此实例用subList功能分页,后续会用数据库SQL来完成分页。

  • 相关阅读:
    vs2010装虚拟机后启动慢
    LINUX FIFO(读书笔记,LINUX程序设计第四版)
    WPF控件 ProgressBar
    C# SQLite操作示列
    win10下使用Linux命令
    类初始化与实例化过程
    结构与类 Delphi
    多线程应用 Delphi
    (珍藏)SQL Server中常用的SQL语句
    获取当前用户本地应用程序设置文件夹 Delphi
  • 原文地址:https://www.cnblogs.com/chenweichu/p/6391000.html
Copyright © 2020-2023  润新知