打印本文 打印本文 关闭窗口 关闭窗口
一个struts+sql server得分页(存储过程版)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2622  更新时间:2007/11/14 13:06:52  文章录入:mintao  责任编辑:mintao
    if(rsc!=null)
     rsc.close();
    if(st!=null)
     st.close();
    if(rs!=null)
     rs.close();
    if(stmt!=null)
     stmt.close();
    if(conn!=null)
     conn.releaseConnection("mssql",con);
   }catch(Exception e){
    System.out.println(e);
   }
  }
  return rsall;
 }
 
 public String ChangePage(HttpServletRequest request)
 {
  String urlchange=null;
  String pagename = request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1);
  String url = getUrl(request);
  if(intPage>1 && intPage<intPageCount)
  {
   urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a><a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
  }else if(intPage==1 && intRowCount<=intPageSize){
   urlchange="上一页 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
  }else if(intPage==intPageCount && intPage!=1){
   urlchange="<a href="+pagename+"?pagenum="+(intPage-1)+url+">上一页</a> 下一页 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
  }else if(intPage==1 && intRowCount>=intPageSize){
   urlchange="上一页 <a href="+pagename+"?pagenum="+(intPage+1)+url+"> 下一页</a> 第"+intPage+"页 共"+intPageCount+"页 共"+intRowCount+"条";
  }else{
   urlchange = "<a href="+pagename+">第一页</a>";
  }
  return urlchange;
 }
 public String gotoPage(HttpServletRequest request)
 {
  String url = getUrl(request);
  String javascript = "<script>function checksearch()\n{if(find.pagenum.value==\"\" || find.pagenum.value==\"0\"){alert(''''请输正确入页数!'''');find.pagenum.focus();return false;}\nif(isNaN(find.pagenum.value)){alert(''''请输入数字!'''');find.pagenum.focus();return false;}}</script>";
  String form = "<table  border=''''0'''' cellpadding=''''0'''' cellspacing=''''0''''>\n"+javascript;
  form += "<form name=''''find''''  action='''''''' onSubmit=''''return checksearch()''''>\n<tr><td width=''''40'''' align=''''center''''>\n<input name=''''pagenum'''' type=''''text'''' size=''''2''''>\n";
  if(url!=null)
  {
   if(url.indexOf("&")>0)
   {
    String[] param = new String[(url.split("&")).length];
    param = url.split("&");
    for(int i = 0;i<param.length;i++)
    { 
     form += "<input type=''''hidden'''' name=''''"+param[i].substring(0,param[i].indexOf("="))+"'''' value=''''"+param[i].substring(param[i].indexOf("=")+1)+"''''>\n";   
    }
   }else{
    if(url.indexOf("=")>0)
    {
     form += "<input type=''''hidden'''' name=''''"+url.substring(0,url.indexOf("="))+"'''' value=''''"+url.substring(url.indexOf("=")+1)+"''''>\n";
    }
   }
  }
  form += "</td><td width=''''25'''' align=''''center''''><input type=''''submit'''' name=''''Submit'''' value=''''GO''''>\n</td>\n</tr>\n</form>\n</table>";
  return form;
 }
 private String getUrl(HttpServletRequest request)
 {
  String url = "";
  Enumeration param = request.getParameterNames();
  while(param.hasMoreElements())
  {
   String pname = param.nextElement().toString();
   if(!pname.equalsIgnoreCase("pagenum"))
    url += pname+"="+request.getParameter(pname)+"&";
  }
  if(url.endsWith("&"))
  {
   url = url.substring(0,url.lastIndexOf("&"));
  }
  return url;
 }
 public String intercept(String str,int num,String last)
 {
  if(str.length()<=num)
   return str;
  else
   return str.substring(0,num)+last;
 }
}

--------------------------------------------------------------------------------------------------------

在action里可以这样调用

--------------------------------------------------------------------------------------------------------------

   String sql = "select * from usertable";
   String sqlcount = "select count(*) from usertable";//为了得到总行数
   int pagesize= 18;
   int pagenum = 1;
   if(request.getParameter("pagenum")!=null)
   {
    pagenum = java.lang.Integer.parseInt(request.getParameter("pagenum"));
   }
   ResultGatherPro rs = new ResultGatherPro(sql,pagesize,pagenum,sqlcount);
   request.setAttribute("liststill",rs.selectRS());
   request.setAttribute("changepage",rs.ChangePage(request));
   request.setAttribute("gotopage",rs.gotoPage(request));

-----------------------------------------------------------------------------------------------------------------------------------

最后 jsp里可以这样写

-------------------------------------------------------------------------------------------------------------------------

<logic:iterate id="listuser" name="liststill" type="Map">
<bean:write name=''''listuser'''' property=''''username''''/>   
<bean:write name=''''listuser'''' property=''''useremail''''/>      
</logic:iterate>

<bean:write name=''''changepage'''' filter="false"/> 
                <bean:write name=''''gotopage'''' filter="false"/>
上面两个一定要设置filter="false" 不然会过滤html部分

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口