分页的当前页号如何去传递
比如说按下一页的时候如何每次都能正确传递页面加1
最好是说详细点  下面是我的分页类package ssh.web;import java.util.List;public class PageForm { // 总记录数
private int totalRecords; // 结果集
private List list; // 当前页
private int pageNo=1; // 每页显示多少条
private int pageSize=5; public int getTotalRecords() {
return totalRecords;
} /**
 * 取得总页数
 * 
 * @return
 */
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
} public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
} public List getList() {
return list;
} public void setList(List list) {
this.list = list;
} 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;
} /**
 * 取得第一页
 * 
 * @return
 */
public int getTopPageNo() {
return 1;
} /**
 * 取得上一页
 * 
 * @return
 */
public int getPreviousPageNo() {
if (pageNo <= 1) {
return 1;
}
return pageNo - 1;
} /**
 * 取得下一页
 * 
 * @return
 */
public int getNextPageNo() {
if (pageNo >= getTotalPages()) {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
return pageNo + 1;
} /**
 * 取得最后一页
 * 
 * @return
 */
public int getBottomPageNo() {
return getTotalPages() == 0 ? 1 : getTotalPages();
}
}

解决方案 »

  1.   

    所有信息都可以request.setAttribute("key",value)的方式传给JSP
      

  2.   

    那样实在是不怎么好的搞发。我想问下我上面的类可以做为struts的form来传递参数吗
      

  3.   

    还有就是我在dao层得到了总页数怎么在action里面得到哦难道在service层我还得写个方法来得到总页数这样太麻烦了
      

  4.   

    将分页类提取出来,在form里创建分页类的实例,可以直接存取分页类的信息,我就是这么做点
      

  5.   

    这要看你使用的是什么框架了,struts2就直接用标签 , jsp 肯定用request了,也有用session的。
      

  6.   

    从DAO层获取到所有的信息,包括总页数,每页显示条数,当前页码。用一个VO传到action里面。当然,从前台往后台也将需要的信息都用一个VO往后台传。有什么疑问吗?
      

  7.   


    我在dao已经拿到了。问题是怎么到action里面来.特别是总页数。我要传查询结果。页数要传过来难道service层还要写个方法来接受总页数传到action?
    给我具体实现吧
      

  8.   

    这么简单的问题? 你再来个带参数的构造函数,想带什么参数都可以比如你的加上个带参的构造函数public PageForm (int pageNo){
        this.pageNo = pageNo;
    }调用时:PageForm pf = new PageForm(8); //当前就是第8业
      

  9.   


    看清楚  我在dao里面拿的到。但是问题也来了。。我dao还需要做数据的查询
      

  10.   

    也就是说我上面那个分页类是否可以做为struts的actionform呢
      

  11.   

    如果你是dao--service-action的话,可以直接在action中注入dao的接口的嘛,仅在取总页数的时候用不就好了么,既然你不想写在service里面
    建议分页不要和其他的熟性掺杂在一起…… 提炼提炼
      

  12.   


    你做个静态工厂不就OK了?
    //模型层
    package com.guo.daoimpl;import java.util.ArrayList;import com.guo.dao.Pagination;
    import com.guo.method.*;public class MSSQLPagination implements Pagination { private String tableName;
    private String tableId;
    private int pageSize;
    private int pageNumber;
    private int maxPages;
    private int maxElements; public MSSQLPagination() {
    } public void setTableName(String tableName) {
    this.tableName = tableName;
    } public void setTableId(String tableId) {
    this.tableId = tableId;
    } public MSSQLPagination(String tableName, String tableId, int pageSize,
    int pageNumber) {
    this.tableName = tableName;
    this.tableId = tableId;
    this.pageSize = pageSize;
    this.pageNumber = pageNumber;
    init();
    } public void init() {
    setMaxElements(maxElements);
    setMaxPages(maxPages);
    } @Override
    public ArrayList<Object> getList() { // 返回当前页的数据的集合
    String args = (pageNumber - 1) * pageSize + "";
    String sql = "select top " + pageSize + " * from " + tableName
    + " where " + tableId + " not in(select top " + args + " "
    + tableId + " from " + tableName + " order by " + tableId
    + " desc)order by " + tableId + " desc";
    if (tableName.equals("users")) {
    UsersMethod um = new UsersMethod();
    return um.query(sql, null);
    }
    return null;
    } public void setMaxElements(int maxElements) {
    String sql = "select count(*) from " + tableName;
    this.maxElements = CommonMethod.getMaxElements(sql);
    } @Override
    public int getMaxElements() { // 返回要分页的总记录数
    return maxElements;
    } public void setMaxPages(int maxPages) {
    if (maxElements != 0 && (maxElements % pageSize == 0)) {
    this.maxPages = maxElements / pageSize;
    } else {
    this.maxPages = maxElements / pageSize + 1;
    }
    } @Override
    public int getMaxPages() { // 返回总页数
    return maxPages;
    } @Override
    public int getNext() {
    if (pageNumber + 1 >= getMaxPages()) {
    pageNumber = getMaxPages();
    return pageNumber;
    } else {
    pageNumber = pageNumber + 1;
    return pageNumber;
    }
    } @Override
    public int getPageNumber() {
    return pageNumber;
    } @Override
    public int getPageSize() {
    // TODO Auto-generated method stub
    return 0;
    } @Override
    public int getPrevious() {
    if (pageNumber - 1 <= 1) {
    pageNumber = 1;
    return pageNumber;
    } else {
    pageNumber = pageNumber - 1;
    return pageNumber;
    }
    } @Override
    public boolean hasNext() {
    // TODO Auto-generated method stub
    return false;
    } @Override
    public boolean hasPrevious() {
    // TODO Auto-generated method stub
    return false;
    } @Override
    public boolean isFirst() {
    // TODO Auto-generated method stub
    return false;
    } @Override
    public boolean isLast() {
    // TODO Auto-generated method stub
    return false;
    } @Override
    public void setPageNumber(int pageNumber) { if (pageNumber <= 1) {
    this.pageNumber = 1;
    } else if (pageNumber > maxPages) {
    this.pageNumber = maxPages;
    }else{
    this.pageNumber = maxPages;
    } } @Override
    public void setPageSize(int pageSize) {
    this.pageSize = pageSize; }}静态工厂package com.guo.factory;import com.guo.dao.Pagination;
    import com.guo.daoimpl.MSSQLPagination;public class MSSQLPaginationModel {

    private static Pagination mssqlpg = new MSSQLPagination(); public static Pagination getPaginationDAO(String tableName, String tableId,
    int pageSize, int pageNumber) {
    mssqlpg.setTableName(tableName);
    mssqlpg.setTableId(tableId);
    mssqlpg.setPageSize(pageSize);
    mssqlpg.setPageNumber(pageNumber);
    mssqlpg.init();

    return mssqlpg;
    }
    }
    //控制层package com.guo.servlet;import java.io.IOException;
    import java.util.ArrayList;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.guo.daoimpl.MSSQLPagination;
    import com.guo.factory.MSSQLPaginationModel;public class PageGetLastServlet extends HttpServlet {
    private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doPost(request, response); }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { MSSQLPagination mp = (MSSQLPagination)request.getSession().getAttribute("MSSQLPagination");
    int maxPage = mp.getMaxPages();
    ArrayList<Object> userslist = MSSQLPaginationModel.getPaginationDAO(new String("users"),
    new String("userid"), 12, maxPage).getList();
    request.getSession().setAttribute("userslist", userslist);

    response.sendRedirect("admin/usersManage.jsp");
    }}献丑了~