如何实现网页的分页问题
如题,如何使用html+Ajax+Servlet实现网页分页的问题
[解决办法]
这个,Google下就大把样例吧。。。
如果不打算借助框架来实现的话,无非是熟悉熟悉jQuery,利用jQuery来帮你处理Ajax和DHTML。
至于Servlet,就当作一个服务来访问就行了,给它查询和页码参数(GET或POST都行),它返回JSON字符串。
另一种变通做法,是把Servlet换成分页JSP,但这里的分页JSP并不是完整页面,而是仅仅生成<TABLE>节点内容。
然后用jQuery去GET这个JSP,并把所得到的HTML完全替换当前页面的<TABLE>。
[解决办法]
之前写的分页 不过使用struts2做的,
public class Serch extends ActionSupport{ private String bid; private String bname; private int number; private int k;//储存最大页面数 private int pageNow=1; //页码数,初始为1 private int pageSize = 5 ; //页面行数 private int intRowCount;//总行数 private int intPageCount;//总页数 private int lastPage; private int p=1;.....set/get;public String execute() throws Exception { List list=new List(); java.util.List L=new ArrayList(); L=list.list(); intRowCount=L.size(); System.out.println("链表的长度:"+L.size()); if(L.size()%pageSize==0) //判断分多少页 this.lastPage=L.size()/pageSize; else this.lastPage=L.size()/pageSize+1; this.setIntPageCount(this.lastPage);//存入总页数 if(this.pageNow<1)//如果当前页码是第一页在点第一页的时候也跳转到第一页 this.pageNow=1; if(this.pageNow>this.lastPage)//同理只不过是最后一页 this.pageNow=this.lastPage; /* * * 假设取其中20-25条 * * * */ int startIndex=(this.pageNow-1)*pageSize;//截止条目开始,第20条 int endIndex=startIndex+pageSize;//截止条目结束 第25条 if(endIndex>=L.size()) endIndex=L.size(); L= L.subList(startIndex, endIndex); System.out.println("执行"); ActionContext.getContext().put("list", L); return "success";}@Overridepublic void validate() { // TODO Auto-generated method stub super.validate();}}前台显示:共<s:property value="intRowCount"/>记录 共<s:property value="intPageCount"/>页 第<s:property value="pageNow"/>页 <s:url action="Serch.action" id="url"> <s:param name="pageNow"> <s:property value="1" /> </s:param> </s:url> <s:a href="%{url}">首页</s:a> <s:url action="Serch.action" id="url"> <s:param name="pageNow"> <s:property value="%{pageNow-1}" /> </s:param> </s:url> <s:a href="%{url}">上一页</s:a> <s:url action="Serch.action" id="url"> <s:param name="pageNow"> <s:property value="%{pageNow+1}" /> </s:param> </s:url> <s:a href="%{url}">下一页</s:a> <s:url action="Serch.action" id="url"> <s:param name="pageNow"> <s:property value="lastPage" /> </s:param> </s:url> <s:a href="%{url}">尾页</s:a>
[解决办法]
建立pageModel 分页模型 包括几个属性
package util;import java.util.List;/** * 封装分页信息; * @author topwqp * */public class PageModel<E> { //结果集; private List<E> list; //查询记录数; private int totalRecords; //每页多少条数据; private int pageSize; //第几页; private int pageNo; /** * 返回第一页; * @return */ public int getTopPageNo(){ return 0; } /** * 返回最后一页; * @return */ public int getBottomPageNo(){ return getTotalPages(); } /** * 返回上一页页号; * @return */ public int getPreviousPageNo(){ if(pageNo <= 0){ return 0; } return pageNo - 1; } /** * 显示下一页; * @return */ public int getNextPageNo(){ if(pageNo >= getTotalPages()){ return getTotalPages(); } return pageNo + 1; } public int getTotalPages(){ return (totalRecords+pageSize-1)/pageSize-1; } public List<E> getList() { return list; } public void setList(List<E> list) { this.list = list; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } }