日期:2014-05-17  浏览次数:20747 次

如何实现网页的分页问题
如题,如何使用html+Ajax+Servlet实现网页分页的问题

------解决方案--------------------
这个,Google下就大把样例吧。。。

如果不打算借助框架来实现的话,无非是熟悉熟悉jQuery,利用jQuery来帮你处理Ajax和DHTML。

至于Servlet,就当作一个服务来访问就行了,给它查询和页码参数(GET或POST都行),它返回JSON字符串。



另一种变通做法,是把Servlet换成分页JSP,但这里的分页JSP并不是完整页面,而是仅仅生成<TABLE>节点内容。
然后用jQuery去GET这个JSP,并把所得到的HTML完全替换当前页面的<TABLE>。


------解决方案--------------------
之前写的分页 不过使用struts2做的,
Java code



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";
}
@Override
public void validate() {
    // TODO Auto-generated method stub
    super.validate();
}


}
前台显示:


共<s:property value="intRowCount"/>记录&nbsp;&nbsp;
共<s:property value="intPageCount"/>页&nbsp;&nbsp;
        第<s:property value="pageNow"/>页&nbsp;&nbsp;
 <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>    &nbsp;&nbsp;
       
       <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>    &nbsp;&nbsp;


 <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>    &nbsp;&nbsp;

<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 分页模型 包括几个属性 

Java code

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 in