用java,jsp,和jstl表达式做的相册,如何实现分页的局部刷新?

就是用超链接控分页,每次点击“上一页”或“下一页“时都会向servlet重新请求数据... 就是用超链接控分页,每次点击“上一页”或“下一页“时都会向servlet重新请求数据 展开
 我来答
xQ_27
2014-01-09 · 知道合伙人软件行家
xQ_27
知道合伙人软件行家
采纳数:69 获赞数:289
毕业于青岛理工大学。

向TA提问 私信TA
展开全部
<script type="text/javascript">
$(document).ready(function(){
//当点击页面导航的超链接时发送异步请求
$("#pageNav a").click(function(){
var idx = $("#pageNav a").index($(this));//返回当前元素在导航的超链接集合中索引
var curPageNo=parseInt($("#pageNo").val());//当前页数,因为要计算,注意类型转换
var totalPage=$("#totalPage").val();//总页数
var pageNo=1;//要请求的页面

switch(idx){
case 0:
pageNo=1;
break;
case 1:
pageNo=curPageNo-1;
break;
case 2:
pageNo=curPageNo+1;
break;
case 3:
pageNo=totalPage;
break;
}

$.getJSON("${pageContext.request.contextPath }/student/getPageJson",{pageNo:pageNo},function(json){
//更新当前页面数
$("#pageNo").val(json.pageNo);
//更新表格中的数据
//删除旧数据
$("#studentData tr:gt(0)").remove();//删除非第一行的元素
//添加新查询的数据
//遍历json中data集合
var str;
$.each(json.data,function(idx,stu){
str="";
str+="<tr>";
str+="<td>"+stu.id+"</td>"
str+="<td>"+stu.name+"</td>"
str+="<td>"+stu.birth+"</td>"
str+="<td><a href=\"student/updateStudent?studentId="+stu.id+"\">编辑</a></td>";
str+="<td><input type=\"checkbox\" value=\""+stu.id+"\" name=\"delIds\"/></td>";
str+="</tr>";
$("#studentData").append(str);//将集合中的每一个元素转换为一个tr元素,并附加到表格中
});
})
});
$("#selectAll").click(function(){
$("#studentData :checkbox").prop("checked","true");
});
});
</script>
</head>
<body>
<div class="page">
<!-- 页头开始 -->
<div id="header">
<jsp:include page="header.jsp"></jsp:include>
</div>
<!-- 页头结束 -->
<!--内容开始 -->
<div id="content">
<div id="menu" style="float: left">
<jsp:include page="menu.jsp"></jsp:include>
</div>
<div id="workspace" style="float: left;margin-left: 50px;">
<form action="student/deleteSelectedStudent">
<table id="studentData">
<tr>
<td>ID</td>
<td>姓名</td>
<td>生日</td>
<td>编辑</td>
<td>删除</td>
</tr>
<c:forEach items="${page.data }" var="student">
<tr>
<td>${student.id }</td>
<td>${student.name }</td>
<td><fmt:formatDate value="${student.birth }" pattern="yyyy-MM-dd"/> </td>
<td><a href="student/updateStudent/${student.id }">编辑</a></td>
<td><input type="checkbox" value="${student.id }" name="delIds"/></td>
</tr>
</c:forEach>
</table>
<input type="button" value="全选" id="selectAll"/>
<input type="submit" value="删除所选">
</form>
<%-- 
<div>
第${page.pageNo}页
共${page.totalPage}页
<a href="student/listStudent?pageNo=1">第一页</a>
<c:if test="${!page.firstPage }">
<a href="student/listStudent?pageNo=${page.pageNo-1 }">上一页</a>
</c:if>
<c:if test="${!page.lastPage }">
<a href="student/listStudent?pageNo=${page.pageNo+1 }">下一页</a>
</c:if>
<a href="student/listStudent?pageNo=${page.totalPage }">最后一页</a>
</div>
--%>
<!-- 使用jquery及json实现基于异步请求的分页 -->
<input type="hidden" id="pageNo" value="${page.pageNo}"/>
<input type="hidden" id="totalPage"value="${page.totalPage}"/>

<div id="pageNav">
<a href="javascript:void(0)">第一页</a>
<a href="javascript:void(0)">上一页</a>
<a href="javascript:void(0)">下一页</a>
<a href="javascript:void(0)">最后一页</a>
</div>
</div>
</div>
<!--内容结束 -->
<!-- 页脚开始 -->
<div id="footer">
<jsp:include page="footer.jsp"></jsp:include>
</div>
<!-- 页脚结束 -->
</div>
丰箫笛8w
2014-01-09 · TA获得超过479个赞
知道小有建树答主
回答量:363
采纳率:0%
帮助的人:210万
展开全部
用ajax向后台发送请求(post或get方式传递页数信息,比如.......&page=5),然后根据返回的结果用js来操作DOM,或者用jstl,或者在jsp嵌入java语言,更新某块元素内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BS0小陈
2014-01-09 · TA获得超过116个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:109万
展开全部
就是像servlet发送请求啊,然后servlet根据你的页面和每页数从数据库中拿出数据来。发给jsp。jsp使用for来循环显示啊。第一次请求的页码是1下一页是2...有什么区别么???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
johnny_56R
2014-01-09 · 超过10用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:25.8万
展开全部
用ajax....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式