分页代码及用法

16 篇文章 0 订阅
10 篇文章 0 订阅

一,首先复制三个类

类一PageContextTag

package log.tags;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;

public class PageContextTag extends TagSupport{
 private static final long serialVersionUID = 1L;
 private String href;

 public String getHref() {
  return href;
 }

 public void setHref(String href) {
  this.href = href;
 }
 
 public int doEndTag() throws JspTagException {
  try {
   HttpServletRequest re = (HttpServletRequest)pageContext.getRequest();
   String out = re.getRequestURL().toString();
   int index = out.indexOf("/", out.indexOf("/", 7)+1);
   out = "<base href=\""+out.substring(0,index)+"/\">";
   pageContext.getOut().write(out); 
  }catch(Exception e){
   e.printStackTrace();
  }
  return EVAL_PAGE;
 }
}

 

类二PageTag

package log.tags;

import java.io.IOException;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * describe: 翻页标签
 * @author zhangming
 * @date 2010-3-18
 */
public class PageTag extends TagSupport{
 private String method;     //action对应查询方法
 private String tarAction;  //action
 private String tarFrame;   //对应frame
 
 public int doStartTag() throws JspTagException {
  return SKIP_BODY;
 }

 public int doEndTag() throws JspTagException {
  try {
   StringBuffer out = new StringBuffer();
   out.append("<!------------------------------ start pageTag ------------------------------>\r\n");
   out.append("<script type=\"text/javascript\" language=\"javaScript\">\r\n");
   out.append(" function turn(control,aa){\r\n");
   out.append("  var indexint=parseInt(document.getElementById(\"currp\").innerHTML);\r\n");
   out.append("  var countpage=parseInt(document.getElementById(\"countpage\").innerHTML);\r\n");
   out.append("  if(control==\"first\"){\r\n");
   out.append("      if(indexint==1||indexint==0) {\r\n");
   //out.append("       alert(\"这是首页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");
   out.append("   indexint = 1;\r\n");
   out.append("  }if(control==\"previous\"){\r\n");
   out.append("      if(indexint==1||indexint==0) {\r\n");
   //out.append("       alert(\"这是首页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");   
   out.append("   indexint = indexint-1;\r\n");
   out.append("  }if(control==\"next\"){\r\n");
   out.append("      if(indexint==countpage) {\r\n");
   //out.append("       alert(\"这是尾页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");   
   out.append("   indexint = indexint+1;\r\n");
   out.append("  }if(control==\"last\"){\r\n");
   out.append("      if(indexint==countpage) {\r\n");
   //out.append("       alert(\"这是尾页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");    
   out.append("   indexint = parseInt(document.getElementById(\"countpage\").innerHTML);\r\n");
   out.append("  }document.forms[0].currPage.value=indexint; \r\n");
   out.append("  document.forms[0].action=\""+tarAction+"\";\r\n");
   out.append("  document.forms[0].target=\""+tarFrame+"\";\r\n");
   out.append("  document.forms[0].submit();\r\n");
   out.append(" }\r\n");
   out.append("    function goTo(){\r\n");
   out.append("      var re =   /^\\+?[1-9][0-9]*$/;\r\n");
   out.append("      var obj=  document.getElementById(\"currPage\");\r\n");
   out.append("      var countPage= document.getElementById(\"countpage\").innerHTML;\r\n");
   out.append("      if (!re.test(obj.value))\r\n");
   out.append("        {\r\n");
   out.append("          alert(\"请输入正确的页数\");\r\n");
   out.append("          obj.focus();\r\n");
   out.append("        }else{\r\n");
   out.append("          if(countPage<obj.value) obj.value=countPage;\r\n");
   out.append("          document.forms[0].action=\""+tarAction+"\";\r\n");
   out.append("    document.forms[0].target=\""+tarFrame+"\";\r\n");
   out.append("    document.forms[0].submit();\r\n");
   out.append("        }\r\n");
   out.append("    }\r\n");
   
   out.append("</script>\r\n");
   
   out.append("      <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:0px\">\r\n");
   out.append("        <tr> \r\n");
   out.append("          <td width=\"20\" height=\"25\" align=\"right\"><img src=\"/jjxf_MP/image/page/pic02.gif\" width=\"20\" height=\"11\"></td>\r\n");
   out.append("          <td align=\"left\">查询结果 共<span class=\"text\"> <span class=\"text\"><label id=\"icount\">0</label></span> \r\n");
   out.append("            </span>条记录,第<span class=\"text\"><label id=\"currp\">0</label>/<label id=\"countpage\">0</label></span> 页</td>\r\n");
   out.append("          <td align=\"right\"> <table  align=\"right\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:0px\">\r\n");
   out.append("              <tr> \r\n");
   out.append("                <td width=\"18\"><a href=\"javascript:void(0)\"  οnclick=\"turn('first',document.forms[0])\" ><img src=\"/jjxf_MP/image/page/sy1.gif\" alt=\"首页\" name=\"firstpage\" id=\"firstpage\" width=\"16\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"48\"><a href=\"javascript:void(0)\"  οnclick=\"turn('previous',document.forms[0])\" ><img src=\"/jjxf_MP/image/page//syy1.gif\" alt=\"上一页\" name=\"previouspage\" id=\"previouspage\" width=\"46\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"48\"><a href=\"javascript:void(0)\"  οnclick=\"turn('next',document.forms[0])\" ><img src=\"/jjxf_MP/image/page/xyy1.gif\" alt=\"下一页\" name=\"nextpage\" id=\"nextpage\" width=\"46\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"18\"><a href=\"javascript:void(0)\"  οnclick=\"turn('last',document.forms[0])\" ><img src=\"/jjxf_MP/image/page/wy1.gif\" alt=\"尾页\" name=\"lastpage\" id=\"lastpage\" width=\"16\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("          <td align=\"left\" class=\"STYLE2\">&nbsp;转到第 <input type=\"text\" name=\"currPage\" id=\"currPage\" value=\"1\" style=\"width:30px\">页&nbsp;<input type=\"button\" name=\"go\" value=\"GO\" onClick=\"goTo();\"></td>\r\n");
   out.append("              </tr>\r\n");
   out.append("            </table></td>\r\n");
   out.append("        </tr>\r\n");
   out.append("      </table>\r\n");
   out.append("<!------------------------------ end pageTag ------------------------------>\r\n");
   pageContext.getOut().write(out.toString());  
  } catch (IOException e) {
   e.printStackTrace();
  }
  return EVAL_PAGE;
 }

 public void doInitBody() throws JspTagException {
 }

 public void setBodyContent(BodyContent bodyContent) {
 }

 public String getMethod() {
  return method;
 }

 public void setMethod(String method) {
  this.method = method;
 }

 public String getTarAction() {
  return tarAction;
 }

 public void setTarAction(String tarAction) {
  this.tarAction = tarAction;
 }

 public String getTarFrame() {
  return tarFrame;
 }

 public void setTarFrame(String tarFrame) {
  this.tarFrame = tarFrame;
 }

 
 
}

类三PageTagForMoreForm

package log.tags;

import java.io.IOException;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.TagSupport;

/**
 * describe: 翻页标签
 * @author zhangming
 * @date 2010-3-18
 */
public class PageTagForMoreForm extends TagSupport{
 private String method;     //action对应查询方法
 private String tarAction;  //action
 private String tarFrame;   //对应frame
 private String tarForm;//对应的form
 private String count;//对应的元素
 public int doStartTag() throws JspTagException {
  return SKIP_BODY;
 }

 public int doEndTag() throws JspTagException {
  try {
   StringBuffer out = new StringBuffer();
   out.append("<!------------------------------ start pageTag ------------------------------>\r\n");
   out.append("<script type=\"text/javascript\" language=\"javaScript\">\r\n");
   out.append(" function turn"+count+"(control,aa){\r\n");
   out.append("  var indexint=parseInt(document.getElementById(\"currp"+count+"\").innerHTML);\r\n");
   out.append("  var countpage=parseInt(document.getElementById(\"countpage"+count+"\").innerHTML);\r\n");
   out.append("  if(control==\"first\"){\r\n");
   out.append("      if(indexint==1||indexint==0) {\r\n");
   //out.append("       alert(\"这是首页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");
   out.append("   indexint = 1;\r\n");
   out.append("  }if(control==\"previous\"){\r\n");
   out.append("      if(indexint==1||indexint==0) {\r\n");
   //out.append("       alert(\"这是首页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");   
   out.append("   indexint = indexint-1;\r\n");
   out.append("  }if(control==\"next\"){\r\n");
   out.append("      if(indexint==countpage) {\r\n");
   //out.append("       alert(\"这是尾页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");   
   out.append("   indexint = indexint+1;\r\n");
   out.append("  }if(control==\"last\"){\r\n");
   out.append("      if(indexint==countpage) {\r\n");
   //out.append("       alert(\"这是尾页!\");\r\n");
   out.append("       return;\r\n");
   out.append("      } \r\n");    
   out.append("   indexint = parseInt(document.getElementById(\"countpage"+count+"\").innerHTML);\r\n");
   out.append("  }document."+tarForm+".currPage.value=indexint; \r\n");
   out.append("  document."+tarForm+".action=\""+tarAction+"\";\r\n");
   out.append("  document."+tarForm+".target=\""+tarFrame+"\";\r\n");
   out.append("  document."+tarForm+".submit();\r\n");
   out.append(" }\r\n");
   out.append("    function goTo"+count+"(){\r\n");
   out.append("      var re =   /^\\+?[1-9][0-9]*$/;\r\n");
   out.append("      var obj=  document."+tarForm+".currPage;\r\n");
   out.append("      var countPage= document.getElementById(\"countpage"+count+"\").innerHTML;\r\n");
   out.append("      if (!re.test(obj.value))\r\n");
   out.append("        {\r\n");
   out.append("          alert(\"请输入正确的页数\");\r\n");
   out.append("          obj.focus();\r\n");
   out.append("        }else{\r\n");
   out.append("          if(countPage<obj.value) obj.value=countPage;\r\n");
   out.append("          document."+tarForm+".action=\""+tarAction+"\";\r\n");
   out.append("    document."+tarForm+".target=\""+tarFrame+"\";\r\n");
   out.append("    document."+tarForm+".submit();\r\n");
   out.append("        }\r\n");
   out.append("    }\r\n");
   
   out.append("</script>\r\n");
   
   out.append("      <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n");
   out.append("        <tr> \r\n");
   out.append("          <td width=\"20\" height=\"25\" align=\"right\"><img src=\"/jjxf_MP/image/page/pic02.gif\" width=\"20\" height=\"11\"></td>\r\n");
   out.append("          <td class=\"biao\">查询结果 共<span class=\"text\"> <span class=\"text\"><label id=\"icount"+count+"\">0</label></span> \r\n");
   out.append("            </span>条记录,第<span class=\"text\"><label id=\"currp"+count+"\">0</label>/<label id=\"countpage"+count+"\">0</label></span> 页</td>\r\n");
   out.append("          <td align=\"right\"> <table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\r\n");
   out.append("              <tr> \r\n");
   out.append("                <td width=\"18\"><a href=\"javascript:void(0)\"  οnclick=\"turn"+count+"('first',document."+tarForm+")\" ><img src=\"/jjxf_MP/image/page/sy1.gif\" alt=\"首页\" name=\"firstpage"+count+"\" id=\"firstpage"+count+"\" width=\"16\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"48\"><a href=\"javascript:void(0)\"  οnclick=\"turn"+count+"('previous',document."+tarForm+")\" ><img src=\"/jjxf_MP/image/page//syy1.gif\" alt=\"上一页\" name=\"previouspage"+count+"\" id=\"previouspage"+count+"\" width=\"46\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"48\"><a href=\"javascript:void(0)\"  οnclick=\"turn"+count+"('next',document."+tarForm+")\" ><img src=\"/jjxf_MP/image/page/xyy1.gif\" alt=\"下一页\" name=\"nextpage"+count+"\" id=\"nextpage"+count+"\" width=\"46\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("                <td width=\"18\"><a href=\"javascript:void(0)\"  οnclick=\"turn"+count+"('last',document."+tarForm+")\" ><img src=\"/jjxf_MP/image/page/wy1.gif\" alt=\"尾页\" name=\"lastpage"+count+"\" id=\"lastpage"+count+"\" width=\"16\" height=\"15\" border=\"0\"></a></td>\r\n");
   out.append("          <td align=\"left\" class=\"STYLE2\">&nbsp;转到第 <input type=\"text\" name=\"currPage\" id=\"currPage\" value=\"1\" style=\"width:30px\">页&nbsp;<input type=\"button\" name=\"go\" value=\"GO\" onClick=\"goTo"+count+"();\"></td>\r\n");
   out.append("              </tr>\r\n");
   out.append("            </table></td>\r\n");
   out.append("        </tr>\r\n");
   out.append("      </table>\r\n");
   out.append("<!------------------------------ end pageTag ------------------------------>\r\n");
   pageContext.getOut().write(out.toString());  
  } catch (IOException e) {
   e.printStackTrace();
  }
  return EVAL_PAGE;
 }

 public void doInitBody() throws JspTagException {
 }

 public void setBodyContent(BodyContent bodyContent) {
 }

 public String getMethod() {
  return method;
 }

 public void setMethod(String method) {
  this.method = method;
 }

 public String getTarAction() {
  return tarAction;
 }

 public void setTarAction(String tarAction) {
  this.tarAction = tarAction;
 }

 public String getTarFrame() {
  return tarFrame;
 }

 public void setTarFrame(String tarFrame) {
  this.tarFrame = tarFrame;
 }

 public String getTarForm() {
  return tarForm;
 }

 public void setTarForm(String tarForm) {
  this.tarForm = tarForm;
 }

 public String getCount() {
  return count;
 }

 public void setCount(String count) {
  this.count = count;
 }
 
 
 
}

二在WEB-INFO下新建一个文件名为tld,并创建一个tyTag.tld

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
 <tlibversion>1.2</tlibversion>
 <jspversion>1.1</jspversion>
 <shortname>tyTag</shortname>
 <uri>/tyTag</uri>
 <tag>
  <name>page</name>
  <tagclass>log.tags.PageTag</tagclass>
  <bodycontent>JSP</bodycontent>
  <attribute>
   <name>tarAction</name>
   <required>false</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  <attribute>
   <name>tarFrame</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
 </tag>
 <tag>
  <name>pageForMore</name>
  <tagclass>log.tags.PageTagForMoreForm</tagclass>
  <bodycontent>JSP</bodycontent>
  <attribute>
   <name>tarAction</name>
   <required>false</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  <attribute>
   <name>tarFrame</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  <attribute>
   <name>tarForm</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  <attribute>
   <name>count</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
 </tag>
  <tag>
  <name>base</name>
  <tagclass>log.tags.PageContextTag</tagclass>
  <bodycontent>JSP</bodycontent>
 </tag>
</taglib>

三创建查询结果类


package util;

import java.util.List;

/**
 * 查询结果
 * @author Administrator
 *
 */
public class QueryResult {
 public List vector; // 查询结果集合
 public String countRows; //行数
 public String countPages; //页数
 public List getVector() {
  return vector;
 }
 public void setVector(List vector) {
  this.vector = vector;
 }
 public String getCountRows() {
  return countRows;
 }
 public void setCountRows(String countRows) {
  this.countRows = countRows;
 }
 public String getCountPages() {
  return countPages;
 }
 public void setCountPages(String countPages) {
  this.countPages = countPages;
 }
 
}

四在公共类里面加上

package util;

public class testUtil {
 /** 分页显示时每页最多显示的记录数 */
 public static final short MAX_RESULT_PER_PAGE = 10;
 /**
  * 根据记录数得到页数
  *
  * @param rows
  *            总记录数
  * @param max_per_page
  *            每页显示最大记录数
  * @return String
  */
 public static String getCountPage(Integer rows, int max_per_page) {
  int temp = (int) (rows.intValue() / max_per_page);
  if (rows.intValue() % max_per_page != 0)
   temp++;
  return temp + "";
 }
}

五、业务层的代码

List<Register> list = hibernateTemplateDao.page_list(hql.toString(),
    table, currPage, Constants.MAX_RESULT_PER_PAGE);
  qs.setCountRows(totalRecord);
  qs.setCountPages(GeneralUtil.getCountPage(new Integer(Integer
    .parseInt(qs.getCountRows())), Constants.MAX_RESULT_PER_PAGE));
  for (Register reg : list) {
   reg.setCurrentStateCh(GeneralUtil.getCurrentChState(reg
     .getCurrentState()));
  }
  qs.setVector(list);

六、逻辑层调用

@Action(value = "/commonQuery/commonQueryTable", results = { @Result(name = "commonQueryTable", location = "/page/caseQuery/commonQuery_main_table.jsp") })
 public String commonQueryTable() throws Exception {
  try {
   QueryResult qs = commonQueryService.getAllCaseRegister(register,
     regDateBegin, regDateEnd, currPage);
   if (qs != null && qs.getCountRows().equals("0")) {
    this.setCurrPage("0");
   }

   this.setQueryResult(qs);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return "commonQueryTable";
 }

七、jsp页面调用

初始化页面

<table width="100%" border="0" cellspacing="0" cellpadding="0"
        cellpadding="1">

        <tr>
         <td>
          <tytag:page tarFrame="frame1"
           tarAction="${base}/caseCheck/queryCaseCheckTable.shtml"></tytag:page>
         </td>
        </tr>

       </table>

显示页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/tags/tytag" prefix="tytag"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>信访登记</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

 <script type="text/javascript" src="<%=basePath%>javascript/jquery-1.4.min.js"></script>
  <script type="text/javascript" src="<%=basePath%>javascript/page.js"></script>
<link rel="stylesheet" href="<%=basePath%>css/main.css" />
<style type="text/css">
.textBg{
background-color:#e9e6e6 ;
}

.t1{
color:#0000FF ;
text-decoration:none ;
}
td{
text-align:center ;

}
.t2{
color:#000000 ;
text-decoration:none ;
}

.textonlyread{
 background:#F0F0F0
}
fieldset legend {
color:#1E7ACE;
font-weight:bold;

}
.tr:hover {
 border: #99BBE8 1px solid;
 background: #99BBE8;
}

.STYLE1 {color: #FF0000}

</style>
</head>
<script type="text/javascript"> 
$(document).ready(function(){
  loadtable();
})
function fillCurrentId(id){
   window.parent.document.getElementById("registerId").value = id;
}
</script>
<body bgcolor="#FFFFFF">
<s:form>
<s:hidden name="countPage" id="countPage" />
<s:hidden name="countRow" id="countRow" />
<s:hidden name="currPage" id="currPage" />
<table width="99%" align="center" border="1" cellspacing="0" cellpadding="3">
    <tr style="background-image: url('<%=basePath %>image/one_result.jpg')">
        <th scope="col">序号</th>
  <th scope="col">选择</th>
        <th scope="col">登记日期</th>
        <th scope="col">登记人</th>
        <th scope="col">被信访人</th>
  <th scope="col">办理状态</th>
        <th scope="col">登记部门</th>
  <th scope="col">承办部门</th>
        <th scope="col">主要违纪线索</th>
    </tr>
    <s:iterator value="vector" id="regInfo" status="st">
          <tr class="tr" bgcolor="<s:if test='#st.odd==true'></s:if><s:else>#eceaeb</s:else>">
          <td>
             &nbsp;<s:property value="#st.index+1"/>
          </td>
          <td>
           <input type="radio" name="radiobutton" value="<s:property value='id'/>" οnclick="fillCurrentId('${regInfo.id }')"/>
          </td>
          <td>
           &nbsp;<s:date name="regTime" format="yyyy-MM-dd"/>
          </td>
          <td>
           &nbsp; <s:property value="regUserName"/>
          </td>
           <td>
            &nbsp;<s:property value="bePetName"/>
          </td>
           <td>
            &nbsp;<s:property value="currentStateCh"/>
          </td>
          <td>
            &nbsp;<s:property value="regUnit.unitName"/>
          </td>
          <td>
            &nbsp;<s:property value="currentUnit.unitName"/>
          </td>
          <td title="<s:property value='brief'/>">
            <s:if test="brief != null && brief.length() >14">
                 <s:property value="brief.substring(0,14)"/>...
            </s:if>
            <s:else>
                 &nbsp;<s:property value="brief"/>
            </s:else>
          </td>
          </tr>
    </s:iterator>
</table>
</s:form>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值