首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

怎么实现网页的分页有关问题

2012-04-21 
如何实现网页的分页问题如题,如何使用html+Ajax+Servlet实现网页分页的问题[解决办法]这个,Google下就大把

如何实现网页的分页问题
如题,如何使用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";}@Overridepublic 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 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;    }        } 

热点排行