共58条记录  每页显示20条  第1页 / 共3页 第一页 上一页 下一页 最后一页 转到第页 
58条数据在一页里全显示出来了,不分页
public ActionForward toListByPage(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
String type = request.getParameter("type");
if(type.equals("1")){
request.setAttribute("titleName", "通知公告");
}else if(type.equals("2")){
request.setAttribute("titleName", "政策法规");

ConsultForm myForm = (ConsultForm) form;
super.getConsultBiz().getListPa(myForm,type);
request.setAttribute("consultList", super.getConsultBiz().getListByType(type));
return mapping.findForward("listByPage");
}
public void getListPa(ConsultForm myForm,String type) {
String hql="from Consult o where o.type="+type+" order by o.id desc";
super.getCommonDAO().listByQuesPage(hql, myForm.getQuesResult());
}@SuppressWarnings("unchecked")
public void listByQuesPage(String hql, QuestionPageResult  quesResult) {
if (null == hql) { return; }
Query query = session.createQuery(hql);
query.setFirstResult(quesResult.getFirstRec());
int a=quesResult.getFirstRec();
query.setMaxResults(quesResult.getPageSize());
int b=quesResult.getPageSize();
List ret = query.list();
quesResult.setList(ret);
String queryString = "";
if (hql.toUpperCase().indexOf("SELECT") != -1) {
int i = query.getQueryString().toUpperCase().indexOf("FROM");
queryString = "Select count(*) " + hql.substring(i, hql.length());
} else {
queryString = "Select count(*) " + hql;
}
// 去掉ORDER BY 的部分
int j = queryString.toUpperCase().lastIndexOf("ORDER");
if (j != -1){
queryString = queryString.substring(0, j);
}
Query cquery = session.createQuery(queryString);
cquery.setCacheable(true);
int recTotal = ((Long) cquery.iterate().next()).intValue();
quesResult.setRecTotal(recTotal);
}

解决方案 »

  1.   

    query.setFirstResult(quesResult.getPageSize());
    quesResult.getPageSize()是不是20?
      

  2.   

    package com.hrbrc.common.taglib;import java.io.IOException;
    import java.util.List;import javax.servlet.http.HttpSession;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;public class PagerTld extends TagSupport { private static final long serialVersionUID = 1L; private List list;// 要显示的数据 private int pageCount = 15;// 每页显示的行数 private int begin = 0; private int pageNo = 1;// 页号 private int prePage = 0;// 上一页 private int nextPage = 0;// 下一页 private int lastPage = 0;// 尾页 private String pagePath;
    public String getPagePath() {
    return pagePath;
    } public void setPagePath(String pagePath) {
    this.pagePath = pagePath;
    } public PagerTld() {
    System.out.println("init");
    } public int getPageCount() {
    return pageCount;
    } public void setPageCount(int pageCount) { this.pageCount = pageCount;
    } public List getList() {
    return list;
    } public void setList(List list) {
    this.list = list;
    } public int getPageNo() {
    return pageNo;
    } public void setPageNo(int pageNo) {
    this.pageNo = pageNo;
    } @Override
    public int doStartTag() throws JspException {
    // TODO Auto-generated method stub
    pageContext.getSession().setAttribute("pageCount", pageCount);
    // HttpServletRequest request = (HttpServletRequest) pageContext
    // .getRequest();
    HttpSession session = pageContext.getSession();
    // HttpServletResponse response = (HttpServletResponse) pageContext
    // .getResponse();
    JspWriter out = pageContext.getOut();
    // String uri = request.getRequestURI();
    computPage();
    session.setAttribute("begin", begin);
    session.setAttribute("pageCount", pageCount);
    session.setAttribute("end", begin + pageCount - 1);
    try {
    // 显示分页导航
    out
    .print("  <FORM METHOD=GET ACTION='"
    + pagePath
    + "'>共"
    + list.size()
    + " 条记录&nbsp;&nbsp; 当前第"
    + pageNo
    + "/"
    + lastPage
    + "页&nbsp;&nbsp;每页显示"
    + pageCount
    + "条&nbsp;&nbsp;<a href='"
    + pagePath + "&pageNo=0'>首页</a>&nbsp;&nbsp;"
    + "<a href='" + pagePath
    + "&pageNo="+prePage+"'>上一页</a>&nbsp;&nbsp;" + "<a href='"
    + pagePath + "&pageNo="+nextPage+"'>下一页</a>&nbsp;&nbsp;"
    + "<a href='" + pagePath + "&pageNo=" + lastPage
    + "'>尾页</a>");
    } catch (IOException e) { // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return SKIP_BODY;
    } private void computPage() { if (pageNo <= 0) {
    pageNo = 1;
    }
    begin = (pageNo - 1) * pageCount;
    if (list.size() % pageCount != 0) {
    lastPage = list.size() / pageCount + 1;
    } else {
    lastPage = list.size() / pageCount;
    }
    prePage=pageNo-1;
    nextPage = pageNo+1;
    if(prePage<=0){
    prePage=1;
    }
    if(nextPage>lastPage){
    nextPage=lastPage;
    }
    }}