jsp中分页最快捷的办法是用分页组件:
分页组件代码使用taglib实现的:
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/tld/ctld" prefix="c"%>
<%@ attribute name="curIndex" type="javalangLong" required="true"%>
<%@ attribute name="pageSize" type="javalangLong" required="true"%>
<%@ attribute name="pagerRange" type="javalangLong" required="true"%>
<%@ attribute name="totalPage" type="javalangLong" required="true"%>
<%@ attribute name="formId" type="javalangString" required="true"%>
<%
long begin = Mathmax(1, curIndex - pagerRange/2);
long end = Mathmin(begin + (pagerRange-1),totalPage);
requestsetAttribute("p_begin", begin);
requestsetAttribute("p_end", end);
%>
<table class="pager">
<tr>
<% if (curIndex!=1){%>
<td><a href="javascript:gotoPage(1)">首页</a></td>
<td><a href="javascript:gotoPage(<%=curIndex-1%>)">上一页</a></td>
<%}else{%>
<td class="disabled"><a href="#">首页</a></td>
<td class="disabled"><a href="#">上一页</a></td>
<%}%>
<c:forEach var="i" begin="${p_begin}" end="${p_end}">
<c:choose>
<c:when test="${i == curIndex}">
<td class="active"><a href="#">${i}</a></td>
</c:when>
<c:otherwise>
<td><a href="javascript:gotoPage(${i})">${i}</a></td>
</c:otherwise>
</c:choose>
</c:forEach>
<% if (curIndex!=totalPage){%>
<td><a href="#">下一页</a></td>
<td><a href="#">末页</a></td>
<%}else{%>
<td class="disabled"><a href="javascript:gotoPage(<%=curIndex+1%>)">下一页</a></td>
<td class="disabled"><a href="javascript:gotoPage(<%=totalPage%>)">末页</a></td>
<%}%>
<td><a>共${totalPage}页</a></td>
<td class="input_li">跳转到:<input type="text" id="p_pageIndex" size="2" value="<c:out value="${pageIndex}"/>"/>页 <input type="button" id="gotoBtn" onclick="gotoPageByBtn()" value="GO"/></td>
<td class="input_li"> 每页:
<select id="p_pageSizeSelect" onchange="gotoPage(<%=curIndex%>)">
<option value="10" <c:if test="${pageSize==10}">selected</c:if>>10条</option>
<option value="20" <c:if test="${pageSize==20}">selected</c:if>>20条</option>
<option value="50" <c:if test="${pageSize==50}">selected</c:if>>50条</option>
</select>
</td>
</tr>
</table>
jsp中使用方法:
<%@ taglib uri="/WEB-INF/tld/ctld" prefix="c"%>
<%@ taglib uri="/WEB-INF/tld/fmttld" prefix="fmt"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="tags"%>
<head>
<style><!--分页样式-->
pager { font: 12px Arial, Helvetica, sans-serif;}
pager a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px;line-height:30px;vertical-align:middle;}
pager active a{color:red;border:none;}
pager a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;}
pager a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;}
pager input_li{padding: 1px 6px;}
</style>
<script><!--分页跳转脚本-->
function gotoPage(pageIndex){
var queryForm = documentgetElementById("queryForm");
var action = queryFormaction;
var pageSize = documentgetElementById("p_pageSizeSelect")value;
action += "pageIndex=" + pageIndex + "&pageSize=" + pageSize;
//alert(action);
queryFormaction = action;
queryFormsubmit();
}
function gotoPageByBtn(){
var pageIndex = documentgetElementById("p_pageIndex")value;
var pageIndexInt = parseInt(pageIndex);
var totalPage = ${totalPage};
if(pageIndexInt>0 && pageIndexInt<totalPage){
gotoPage(pageIndex);
}
else{
alert("输入页数超出范围!");
}
}
</script>
</head>
<body>
<form id="queryForm" action="${basePath}/log/list" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" value="<c:out value="${userName}"/>"/> </td>
<td><input type="submit" text="查询"/></td>
</tr>
</table>
</form>
<tags:pager pagerRange="10" pageSize="${pageSize}" totalPage="${totalPage}" curIndex="${pageIndex}" formId="queryForm"></tags:pager>
<table class="border">
<thead>
<tr>
<th width="100">用户名称</th>
<th width="500"> *** 作内容</th>
<th width="200"> *** 作时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${logList}" var="log">
<tr>
<td>${loguserName}</td>
<td>${logresult}</td>
<td>
<fmt:formatDate value="${logcreateTime}" pattern="yyyy-MM-dd HH:mm:ss"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<tags:pager pagerRange="10" pageSize="${pageSize}" totalPage="${totalPage}" curIndex="${pageIndex}" formId="queryForm"></tags:pager>
</body>
你是说详细信息重新查询吗?
一般详细信息内容都是很多的,而且还可能有什么的,一般情况下都是重新查询。
用URL拼写的话很麻烦的,同样都去了后台,为什么不简单点呢?
URL拼写过去 缺点:1参数太多很麻烦的;2中文参数还要处理;3代码太繁琐、可读性太差了,过两天你就看不懂了。
优点:少一次对数据库查询(一般这个查询效率是很高的)
在获取完所有的list后只需要截取你所需要的一部分list就可以了,所以要知道你所需要的是从哪里开始,到哪里结束。有很多种方法,如果只是JSP里的话可以再次遍历获取的所有list集合,然后把满足条件的截取出来,开始的list下标应该是:(你要查询的页数-1)页面要显示的数据条数,也就是你这里的(page-1)pageRows,结束的地方也就是pagepageRows-1了。//这样应该可以写出来了吧建议把这个方法封装到一个类里面,一个方法就实现一种功能。当然这是比较麻烦的,现在流行框架,以后会学到的,在hibernate框架里用query语句很容易就实现了,现在时间多,多看看hibernate框架吧,推荐你一本书,hibernate in action,有中文版的。这个是你们以后入门了hibernate后看的。public List listOrderByItem(int pageRows,int page) { //page是要显示的页数,pageRows是你要显示的行数Session session = thisgetSession();//获取hibernate的session,hibernate自动生成的DAO里包含String hql = "from TBL_storage as tbl_s order by item";//hql语句Query query = sessioncreateQuery(hql);//hibernate的query,通过session创建querysetFirstResult((page-1)pageRows);//设置开始的下标querysetMaxResults(pageRows);//设置每页显示的行数return querylist();//得到所需要的结果集
有两种方法
方法1:
select top 100 from tbllendlist where fldserialNo not in ( select top 300100 fldserialNo from tbllendlist order by fldserialNo ) order by fldserialNo
方法2:
SELECT TOP 100 FROM tbllendlist WHERE (fldserialNo > (SELECT MAX(fldserialNo) FROM (SELECT TOP 300100 fldserialNo FROM tbllendlist ORDER BY fldserialNo) AS T)) ORDER BY fldserialNo
创建出你需要的属性比如在我的项目中我需要用到的:有当前的页码currentPage
当前的页显示的数量currentCount
你从数据库中查询得到的所有数据总和totalCount(这个你需要在dao层定义方法实现并把得到的数据返回给service层)
一共需要分多少页totalPage(这个需要你去计算通过查询所有的数据总和/currentCount,还用到了mathceil()方法)
最后生成setter和getter方法
以上就是关于jsp 如何将查询结果实现分页,最好简单易懂…全部的内容,包括:jsp 如何将查询结果实现分页,最好简单易懂…、java web中修改分页当中某条详细的信息,是要从库里重新查么,、JSP中如何将查询数据库返回的数据分页显示在页面中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)