zoukankan      html  css  js  c++  java
  • Jfinal 列表分页

    本篇介绍JFinal项目的列表分页的功能实现。

    JFinal列表分页

    添加Page

    在前篇JFinal项目的基础上。新建一个Page类,提供一些Page的操作。

    
    /// <summary>
    ///  Page类
    /// </summary>
    
    public class Page {
    
    /// <param name="pageSize">页面大小</param>
    /// <param name="pageIndex">页面索引</param>
    /// <param name="pageCount">页面数量</param>
    /// <param name="count">List数量</param>
    
        public static int pageSize = 9;
        private int pageIndex;
        private int pageCount;
        private int count;
    
        public Page(int pageIndex,int count){
    
           if(count%pageSize==0){
               this.pageCount = count/pageSize;
           }else{
               this.pageCount = count/pageSize+1;
           }
           if(pageIndex>pageCount){
               pageIndex = pageCount;
           }
           if(pageIndex<1){
               pageIndex = 1;
           }
           this.pageIndex = pageIndex;
           this.count = count;
    
        }
    
        public Page(int pageSize,int pageIndex,int count){
    
           this.pageSize = pageSize;
           if(count%pageSize==0){
               this.pageCount = count/pageSize;
           }else{
               this.pageCount = count/pageSize+1;
           }
           if(pageIndex>pageCount){
               pageIndex = pageCount;
           }
           if(pageIndex<1){
               pageIndex = 1;
           }
           this.pageIndex = pageIndex;
           this.count = count;
    
        }
    
        public int getPageSize() {
           return pageSize;
        }
    
        public void setPageSize(int pageSize) {
           this.pageSize = pageSize;
        }
    
        public int getPageIndex() {
           return pageIndex;
        }
    
        public void setPageIndex(int pageIndex) {
           this.pageIndex = pageIndex;
        }
    
        public int getPageCount() {
           return pageCount;
        }
    
        public void setPageCount(int pageCount) {
           this.pageCount = pageCount;
        }
    
        public int getCount() {
           return count;
        }
    
        public void setCount(int count) {
           this.count = count;
        }
    
    }
    
    

    添加接口,获取List

    在原HelloController基础上添加方法IofoList.

    HelloService.java:

    
     static int count = 0;
     
        
         /// <summary>
    	 ///  获取总数量
    	 /// </summary>
    
    	public static int getCount(){
    		
    		String sql="select count(*) as count from dbName";
    		
    	    count = Integer.parseInt(Db.findFirst(sql).getLong("count").toString());
    	    
    	    return count;
    	}
    	
        /// <summary>
    	///  获取当前页面列表
    	/// </summary>	  
    	public static List<Record> get(Page page) {
    
    	       List<Record> list = null;
    	       
    	       int start = (page.getPageIndex() - 1) * page.getPageSize();
    	       
    	       int pageSize = page.getPageSize();
    
    	       String sql = "select * from dbName limit "+start+","+pageSize+" ";
    	       
    	       list = Db.find(sql);
    	       return list;
    	    }
    
    

    HelloController.java:

    
    	public void IofoList(){
    
    		// 获取页面参数  < pageIndex >页面索引值
    		int pageIndex = getParaToInt("pageIndex");
    
    		// 获取总数量
    		int count = HelloService.getCount();
    
    		Page page = new Page(Page.pageSize, pageIndex, count);
    		
    		List<Record> list = HelloService.get(page);
    		Record pageInfo = new Record();
    
    		pageInfo.set("count", page.getCount()).set("pageIndex", page.getPageIndex()).set("pageCount", page.getPageCount());
    
    		// 返回 JSON  <list>当前页面的list;
    		// <pageInfo>页面信息: <count>list总数,<pageCount>页面总数,<pageIndex>当前页面索引 
    		renderJson(new Record().set("list", list).set("pageInfo", pageInfo));
    
    		}
    
    

    接口传来的数据:

    outPut

    调用接口

    page.html:

    
    <body>
    	<div class="table-inner">
    		<div class="table-head">
    			<table>
    				<thead>
    					<tr>
    						<th>List1</th>
    						<th>List2</th>
    						<th>List3</th>
    					</tr>
    				</thead>
    			</table>
    		</div>
    		<div class="table-body">
    			<table>
    				<tbody id="tbody">
    				<tr>
    					<td>1</td>
    					<td>2</td>
    					<td>3</td>
    				</tr>
    				</tbody>
    			</table>
    		</div>
    		<div class="page-wrap">
    			<div class="page-info">
    				<span>共有:</span><span id="listCount">1</span><span>条</span> 
    				<span>共有:</span><span id="pageCount">1</span><span>页</span> 
    				<span>页面显示:</span><span id="currentCount">1</span> <span>条</span> 
    				<span class="current " id="firstPage"><<</span> 
    				<span class="current " id="PreviousPage"><</span> 
    				<span class="current " id="pageIndex">1</span> 
    				<span class="current " id="nextPage">></span>
    				<span class="current " id="lastPage">>></span> 
    				<input type="text" id="go_index" />
    				<span class="current"  id="go">GO</span>
    			</div>
    		</div>
    	</div>
    </body>
    
    

    page.js:

    
    <script type="text/javascript">
    
    // 存页面索引 及总页数
    var pageIndex = 1,pageCount;
    
    $(document).ready(function(){
    	
    	Page();
    
    	//首页
    	$("#firstPage").click(function(){
    		
    		pageIndex = 1;
    
    		Page();
    		
    	});
    	
    	//上一页
        $("#PreviousPage").click(function(){
        	
        	pageIndex = pageIndex - 1;
    		if(pageIndex == 0){
    			pageIndex = 1;
    		}
    
    		Page();
    		
    	});
    
        //下一页
        $("#nextPage").click(function(){
        	
        	pageIndex = pageIndex + 1;
    		if(pageIndex >= pageCount){
    			pageIndex = pageCount;
    		}
    
    		Page();
        });
    	
        //尾页
        $("#lastPage").click(function(){
    		
        	pageIndex = pageCount;
    
        	Page();
    		
    		
    	});
        
        // Go
        $("#go").click(function(){
        	
        	var _index = $("#go_index").val().trim();
        	
            if( _index > 0 && _index <= pageCount){
    
            	pageIndex = _index;
            	
            }else {
            	
            	alert("请输入正确页码");
            	
            }
            Page();
    		$("#go_index").val("");
        	
        });
    	
    });
    
    function Page(){
    	
    	$.post("hello/IofoList",{pageIndex:pageIndex},function(data){
    		console.log(data);
    		var _html = "";
    		var _list = data.list;
    		
    		if( _list.length != 0 && _list.length != null){
    			
    		for(var _i =0 ;_i<_list.length;_i++){
    			
    			var _list_ = _list[_i];
    			
    			_html += "<tr><td>"+(_list_.id == null?"":_list_.id)+"</td>"+
    					 "<td>"+(_list_.caseId == null?"":_list_.caseId)+"</td>"+
    					 "<td>"+(_list_.imgId == null?"":_list_.imgId)+"</td></tr>";
    			
    		}
    		
    		$("#tbody").empty();
    		$("#tbody").append(_html);
    		
    		var _page = data.pageInfo;
    
    		pageCount = _page.pageCount;
    		
    		$("#listCount").html(_page.count);
    		$("#pageCount").html(pageCount);
    		$("#currentCount").html(_list.length);
    		$("#pageIndex").html(pageIndex);
    		
    		}else{
    			alert("暂无数据");
    		}
    		
    	});
    	
    }
    
    </script>
    
    

    outPut

    点击尾页:

    outPut

    源代码

  • 相关阅读:
    浏览器内核
    gulp菜鸟级零基础详细教程
    Mysql自连接的一些用法
    ListView和Adapter数据适配器的简单介绍
    Android轮播图
    css-flex布局知识梳理
    JavaScript 复杂判断的更优雅写法
    团队合作前端书写习惯总结
    常见的HTTP报头(头参数)
    常见的HTTP状态码
  • 原文地址:https://www.cnblogs.com/chenjy1225/p/9661974.html
Copyright © 2011-2022 走看看