JFinal分页paginate

分页的SQL语句

mysql数据库,可以采用limit语句进行分页。

oracle数据库,可以采用rownum的方式进行分页。

JFinal自带分页

对象.dao.paginate(pageNumber,pageSize,select,sqlException)

//pageNumber 第几页

//pageSize 一页几条记录

 

controller的某个方法:

 

int pageNumber;   		 //p为指定跳转的页面
		if(getParaToInt("pn")==null) //前端通过pn传参
		int pageSize;  			//指定每一页的显示数量
		if(getParaToInt("ps")==null) //对一页的数量的参数进行处理
		
		Page<Order> list4 = Order.dao.paginate(pageNumber, pageSize,"select *", "from scjhgl_xsdd");  //所有订单
		int x=list4.getTotalPage();  //共展示的页数
		int y=list4.getPageSize();   //页码的大小
		int z=list4.getTotalRow();   //数据库中数据总共的条数
		
		String skip="";
		for(int q=1;q<=x;q++)
		{
			skip=skip+"<a href=\"scjhgl/index?pn="+q+"&ps="+y+"\">"+q+"</a>" ;  //循环把链接输出 1 2 3 ,  &nbsp;&nbsp空格,传ps参数是避免修改pageSize后恢复页面数改变
		}
		setAttr("iteration4", list4);     //设置iteration4集合供前端页面获取数据库数据
		setAttr("pn",pageNumber);   //当前页面号供前端获取
		setAttr("TotalPage",x);
		setAttr("PageSize",y);
		setAttr("TotalRow",z);
		setAttr("skip",skip);  //数字链接
		renderFreeMarker("ddxi.html");

 

前端如果使用的是jsp页面可以如下显示:

<div class="pull-right">
	<div class="dataTables_paginate paging_simple_numbers" id="dynamic-table_paginate">
		<ul class="pagination">
			<li><a href="scjhgl/index?pageNumber=${iteration4.pageNumber>1?iteration4.pageNumber-1:1}">上一页</a></li>
				<c:forEach begin="1" end="iteration4.totalPage" varStatus="page">
				<c:choose>
					<c:when test="iteration4.pageNumber==page.index">
						<li class="active"><a href="scjhgl/index?pageNumber=${page.index}">${page.index}</a></li>
					</c:when>
					<c:otherwise>
						<li><a href="scjhgl/index?pageNumber=${page.index}">${page.index}</a></li>
					</c:otherwise>
				</c:choose>
				</c:forEach>
			<li><a href="scjhgl/index?pageNumber=${iteration4.pageNumber<iteration4.totalPage?iteration4.pageNumber+1:iteration4.totalPage}}">下一页</a></li>
		</ul>
	</div>

</div>

 

controller可以如下:

		Integer pageNumber = getParaToInt("pageNumber");
		if(pageNumber=null) pageNumber=1;
		Page<Order> list4 = Order.dao.paginate(pageNumber, 5,"select *", "from scjhgl_xsdd");  //所有订单
		setAttr("iteration4",list4);
		render("ddxi.jsp");

-------------------------------------------------------------------------------------------------

突然发现JFinal分页的问题有这么多人搜索,看了下阅读量两千多了。。。

由于要考研,已经有段时间没有写前端的代码了,这里给大家分享当初学JFinal时看的学习视频链接:

链接: https://pan.baidu.com/s/1nvRVPm5 密码: 1234

我后来的分页是用JQuery写的,现在前端的主流搭配应该是HTML+JQuery,就算要使用jsp也可以搭配JQuery,所以分页完全可以使用JQuery来实现,代码也给大家分享下:

<div class="tab-pane" id="tab1">
	<table class="table table-hover table-bordered table-striped">
		<tr bgcolor="#E7E7E7">
			<td height="24" colspan="6">审核新闻</td>
		</tr>
		<tr align="center" bgcolor="#F4F8FB" height="22">
			<td width="6%">序号</td>
			<td width="24%">文章标题</td>
			<td width="18%">录入时间</td>
			<td width="8%">栏目</td>
			<td width="6%">录入者</td>
			<td width="12%">操作</td>
		</tr>

		<tbody id="table_2"></tbody>

		<tr>
			<td height="24" colspan="6"></td>
		</tr>
	</table>


	<div class="pagination">
		<!-- 分页 -->
		<div class="text-right">
			<ul id="pagefoot2">

			</ul>
		</div>
	</div>

 

<script type="text/javascript">
        function SHXW(data) { //审核新闻
            var dataStr = "";
            $.each(data,function(i, a) {
                $.each(a.paginate.list,function(i, v) { //v. _ t_news表数据   a.paginate.list    v
                    dataStr += '<tr>';
            
                    dataStr += '<td>' + v.id + '</td>';
                    dataStr += '<td>' + v.title + '</td>';
                    dataStr += '<td>' + v.createTime + '</td>';
                    dataStr += '<td>' + v.newsType_id + '</td>';
            
                    dataStr += '<td>';
                        $.each(a.account, function(i, m) { //  m. _t_user表数据  a.account --> m
                            if (m.id == v.user_id)
                            dataStr += m.name;
                        })
                    dataStr += '</td>';
                        
                    dataStr += '<td><a href="javascript:Accept('+v.id+')" target="_top" class="btn btn-primary">通过</a>  <a href="javascript:Reject('+v.id+')" target="_top" class="btn btn-danger">不通过</a></td>';
                    dataStr += '</tr>';
                })
            })
            $("#table_2").html(dataStr); //填充
        }

        function PageFoot2(data) {
            var n = "";
            var backword = "上一页";
            var forword = "下一页";
            var x = data.PageNumber; //当前页
            var back; //前一页
            var next; //后一页
            if (x = 1) { //对上一页的判断		
                back = 1;
            } else {
                back = x - 1;
            }
            if (x < data.totalPage) { //对下一页判断
                next = x + 1;
            } else {
                next = data.totalPage;
            }
            n += "<li onclick=\"showPage2(" + back + ")\"><a>" + backword + "</a></li>  ";
            for ( var a = 1; a <= data.totalPage; a++) {
                if (a == data.PageNumber) {
                    n += "<li class=\"active\" onclick=\"showPage2(" + a + ")\"><a>" + a + "</a></li>  ";
                } else {
                    n += "<li onclick=\"showPage2(" + a + ")\"><a>" + a + "</a></li>  ";
                }
            }
            n += "<li onclick=\"showPage2(" + next + ")\"><a>" + forword + "</a></li>  ";
            $("#pagefoot2").html(n); //把循环好的页码给替换掉
        }

        function showPage2(curr) {
            $.get("SH", {"pageNumber" : curr}, function(data) {
                SHXW(data);
                PageFoot2(data[0].paginate); //调用的PageFoot方法,循环输出页码连接  
            });
        }
        showPage2(1); //刚进入页面为第一页,列出第一页数据和页脚

        function Accept(id) {
            layer.confirm("确认通过?", function () {
                // $.updateByUrl("user/Accept?id="+id);
                window.location.href="Accept?id="+id;
            });
        }
        function Reject(id) {
            layer.confirm("确认废除?", function () {
                // $.updateByUrl("user/Reject?id="+id);
                window.location.href="Reject?id="+id;
            });
        }
</script>

 

public void SH(){
		Page<?> dataPage= Db.paginate(getParaToInt("pageNumber", 1), 5, "SELECT *","FROM t_news where state=0");   // t_news表所有未审核数据
		 List<Account> acc = Account.dao.find("select * from t_user");     	// 用户表所有信息,这里审核应该列出所有用户的信息
		 Map<String, Object> map1= new HashMap<String, Object>();
			map1.put("paginate", dataPage);
			map1.put("account", acc);
			List<Object> data = new ArrayList<Object>();
			data.add(map1);
			renderJson(data);
	}
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值