这是我的Action代码:
 public ActionForward html(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws IOException {
       ServletContext context = this.getServlet().getServletConfig().getServletContext();
    response.setContentType("text/html");
          PrintWriter out = response.getWriter();
          Connection connection;
          Statement  statement;
  ResultSet  resultSet;
      try{
            int pageIndex = 0;
            File reportFile = new File(context.getRealPath("/reports/staffer.jasper"));
         JasperReport  jasperReport= (JasperReport)JRLoader.loadObject(reportFile.getPath());
         StringBuffer sb=new StringBuffer();
       sb.append(" select * from staffer");
       Class.forName("net.sourceforge.jtds.jdbc.Driver");
       connection=DriverManager.getConnection("jdbc:jtds:sqlserver://localhost/yq", "sa", "123");
       statement=connection.createStatement();
       resultSet=statement.executeQuery(sb.toString());
       JRResultSetDataSource resultSetDataSourde=new JRResultSetDataSource(resultSet);  
            JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport,new HashMap(),resultSetDataSourde);
            JRHtmlExporter exporter = new JRHtmlExporter();
            StringBuffer sbuffer = new StringBuffer();
            request.setAttribute("sb", sbuffer);
      
            exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer);
         exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
               exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
         exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex));
         exporter.exportReport();
        
      }catch(Exception e){
      e.printStackTrace();
      }
     return mapping.findForward("html");
    
    }我显示转到另外view.jsp页面上输出:
 <%=request.getAttribute("sb").toString()%>,当然页面上只是显示第一页。那我现在怎么在view.jsp进行分页,也就是说可以点下一页进行预览,请高手指点。

解决方案 »

  1.   

    分页
    给你个分页bean研究一下就ok了
    import java.io.*;public class PageBean implements Serializable
    {
    private int currentPage;

    private int totalItem;

    private int everyPage;


    //设置当前页
    public void setCurrentPage(int currentPage) 
    {

    int totalPage = this.getTotalPage();
    if(currentPage <= 0)
    {
    this.currentPage = 1;

    } else if(currentPage >= totalPage)
    {
    this.currentPage = totalPage ;
    }
    this.currentPage = currentPage;
    }
    //取得当前页
    public int getCurrentPage()
    {
    if(totalItem <= 0) 
    {
    return 1;
    }
    return this.currentPage;
    }

    //取得当前页码
    public int getCurrentPageNum() {
    if(totalItem <= 0) {
    return 1;
    }
    return this.currentPage ;
    }

    public void setEveryPage(int everyPage)
    {
    this.everyPage = everyPage;
    }

    public int getEveryPage()
    {
    return this.everyPage;
    }

    public int getTotalPage() 
    { if(totalItem % everyPage == 0) {
    return totalItem / everyPage;
    } else {
    return totalItem / everyPage + 1;
    }
    }

    public void setTotalItem(int totalItem) {
    this.totalItem = totalItem;
    }

    public int getTotalItem() {
    return this.totalItem;
    }

    public int getBeginPosition() 
    {

    return((currentPage-1)*everyPage);



    }

    public int getEndPosition() {
    return currentPage * everyPage ;
    }

    public boolean isFirstPage() {
    return (currentPage <= 1);
    }

    public boolean isLastPage() {

    int totalPage;
    totalPage = getTotalPage();
    if(currentPage >= totalPage) {
    return true;
    } else {
    return false;
    }
    }

    public boolean isEmptyItem() {
    return (totalItem <= 0);
    }
    }必须知道有多少数据条数
    然后set进去生成分页需要的数据
    传的页面上处理一下就行了
    很简单的
      

  2.   

    什么数据库 不同的db分页不一样的 例如oracle mssql mysql db2