当前位置: 代码迷 >> Java Web开发 >> 分页效果~高手帮忙。help me
  详细解决方案

分页效果~高手帮忙。help me

热度:5564   发布时间:2013-02-25 21:17:14.0
求一个分页效果~高手帮忙。。help me
实现一个类似于
下一页 1 2 3 4 5 下一页
的分页,当点击5的时候 中间的数字滚动 变成 3 4 5 6 7
就是点击的数字永远处于中间 前后都有两个连数 且滚动时候不能出现超过总页数和低于1 的数字

求高手实现。。。。。

------解决方案--------------------------------------------------------
http://www.lvtaostudio.com/2009/0711/135
http://blog.itpub.net/post/16624/83753
------解决方案--------------------------------------------------------
Java code
ListAction.javapackage com.sy.action;import java.util.List;import com.opensymphony.xwork2.ActionSupport;import com.sy.dao.AdminDao;import com.sy.dao.NewsDao;import com.sy.dao.impl.AdminDaoImpl;import com.sy.dao.impl.NewsDaoImpl;import com.sy.vo.Admin;import com.sy.vo.News;public class ListAction extends ActionSupport {    private static final long serialVersionUID = 1L;        int i=1;//中间变量    private int k;//储存最大页面数    private int pageNow=1; //页码数,初始为1    private int pageSize = 5 ; //页面行数     private int intRowCount;//总行数    private int intPageCount;//总页数    private Admin admin;    private List<Admin> Adminss;    private News news;    @SuppressWarnings("unchecked")    private List<News> Newss;        private int id;    private int aid;    public News getNews() {        return news;    }    public void setNews(News news) {        this.news = news;    }    @SuppressWarnings("unchecked")    public List<News> getNewss() {        return Newss;    }    public void setNewss(List<News> newss) {        Newss = newss;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public Admin getAdmin() {        return admin;    }    public void setAdmin(Admin admin) {        this.admin = admin;    }    public List<Admin> getAdminss() {        return Adminss;    }    public void setAdminss(List<Admin> adminss) {        Adminss = adminss;    }    public int getAid() {        return aid;    }    public void setAid(int aid) {        this.aid = aid;    }    public int getPageNow() {        return pageNow;    }    public void setPageNow(int pageNow) {        this.pageNow = pageNow;    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public int getIntRowCount() {        return intRowCount;    }    public void setIntRowCount(int intRowCount) {        this.intRowCount = intRowCount;    }    public int getIntPageCount() {        return intPageCount;    }    public void setIntPageCount(int intPageCount) {        this.intPageCount = intPageCount;    }    public int getK() {        return k;    }    public void setK(int k) {        this.k = k;    }@SuppressWarnings("unchecked")    @Override//显示新闻列表    public String execute() throws Exception {        NewsDao npage=new NewsDaoImpl();        intRowCount=npage.count();        k=(intRowCount + pageSize - 1) / pageSize;        intPageCount = (intRowCount + pageSize - 1) / pageSize;//计算出总页数        if(pageNow<1){            pageNow=1;        }                if(pageNow > intPageCount)             pageNow=intPageCount;             i = (pageNow -1)*pageSize;        NewsDao nlist=new NewsDaoImpl();        if(null!=nlist.queryByPage(i,pageSize)){        Newss = nlist.queryByPage(i,pageSize);            return SUCCESS;        }else{            return "failure";        }    }          ..}listNews.jsp<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>    <head>        <base href="<%=basePath%>">        <title>My JSP 'index.jsp' starting page</title>    </head>    <body>..        <center>        共<s:property value="intRowCount"/>记录&nbsp;&nbsp;        第<s:property value="pageNow"/>页&nbsp;&nbsp;         <s:url id="url_pre" value="list.action">            <s:param name="pageNow" value="pageNow-1"></s:param>        </s:url>          <s:url id="url_next" value="list.action">            <s:param name="pageNow" value="pageNow+1"></s:param>        </s:url>        <s:iterator value="Newss" status="status">           <s:url id="url" value="list.action">               <s:param name="pageNow" value="pageNow"/>           </s:url>        </s:iterator>         <s:if test="pageNow==1">    <s:a href="%{url_pre}">最前一页</s:a>     </s:if>     <s:else>     <s:a href="%{url_pre}">上一页</s:a>     </s:else>     <s:if test="pageNow==k">     <s:a href="%{url_next}">最后一页</s:a>       </s:if>       <s:else>       <s:a href="%{url_next}">下一页</s:a>       </s:else>       </center>    </body></html>NewsDao.javapackage com.sy.dao.impl;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.List;import com.sy.dao.NewsDao;import com.sy.util.DataBaseConnection;import com.sy.util.StringUtil;import com.sy.vo.News;public class NewsDaoImpl implements NewsDao {                          //获取分页新闻列表    @SuppressWarnings("unchecked")    public List<News> queryByPage(int i,int pageSize){        List<News> newss=new ArrayList();                PreparedStatement pstmt    = null ;        String sql                = null ;        ResultSet rs            = null ;        DataBaseConnection dbc    = null ;        dbc = new DataBaseConnection() ;        sql = "select * from struts2new order by id asc limit " + i + "," + pageSize;        try        {                                pstmt = dbc.getConnection().prepareStatement(sql);                        rs = pstmt.executeQuery() ;            while(rs.next())            {                News news=new News();                news.setId(rs.getInt("id"));                news.setName(rs.getString("name"));                news.setTitle(rs.getString("title"));                news.setDate(rs.getString("date"));                news.setEmail(rs.getString("email"));                news.setContent(rs.getString("content"));                i++;                newss.add(news);            }            rs.close() ;            pstmt.close() ;        }        catch(Exception e)        {            System.out.println(e) ;        }        finally        {            dbc.close();        }        return newss;    }             //查询总行数    public int count() {        int intRowCount = 0;//总行数        PreparedStatement pstmt    = null ;        String sql                = null ;        ResultSet rs            = null ;        DataBaseConnection dbc    = null ;        dbc = new DataBaseConnection() ;        sql = "select count(id) from struts2new order by id asc";        try        {                        pstmt = dbc.getConnection().prepareStatement(sql);            rs = pstmt.executeQuery();            rs.next();//游标指向第一行            intRowCount=rs.getInt(1);//取得总行数            rs.close() ;            pstmt.close() ;        }        catch(Exception e)        {            System.out.println(e) ;        }        finally        {            dbc.close();        }        return intRowCount;    }}
  相关解决方案