自定义Jsp分页标签一
花了一上午简单研究了下自定义标签。就弄了个自定义的分页标签。代码没有怎么仔细优化。先贴上来,:)
1,标签的实现类NumenTag.java
import
java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 自定义的分页标签
*
* @author 马万林
*
*/
public class NumenTag extends TagSupport {
private String url = null;
private Result result;
private String page = null;
private String[] p;
private Map kv = new HashMap();
private List key = null;
/**
* 分离参数
* @param params
*/
public void setParams(String params) {
key = new ArrayList();
p = params.split(";");
for (int i = 0; p.length>1&&i < p.length; i++) {
kv.put(p[i].split(":")[0], p[i].split(":")[1]);
key.add(p[i].split(":")[0]);
}
}
/**
* 分页的结果
* @param result
*/
public void setResult(String result) {
this.result = (Result) pageContext.getRequest().getAttribute("result");
this.page = (String) pageContext.getRequest().getAttribute("page");
}
public void setUrl(String url) {
this.url = url;
}
public int doStartTag() throws JspException {
StringBuffer sb = null;
if (result != null && result.getContent() != null
&& result.getContent().size() > 0) {
sb = new StringBuffer("分页: ");
if (result.getPage().getHasPrePage()){
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=1");
else
sb.append("&page=1");
linkParams(sb);
sb.append("'>").append("首页").append("</a>").append(" | ");
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(
result.getPage().getPreviousPage());
else
sb.append("&page=").append(
result.getPage().getPreviousPage());
linkParams(sb);
sb.append("'>").append("上页").append("</a>").append(" | ");
}
if (result.getPage().getHasNextPage()) {
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(result.getPage().getNextPage());
else
sb.append("&page=").append(result.getPage().getNextPage());
linkParams(sb);
sb.append("'>").append("下页").append("</a>").append(" | ");
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(result.getPage().getTotalPage());
else
sb.append("&page=").append(result.getPage().getTotalPage());
linkParams(sb);
sb.append("'>").append("尾页").append("</a>");
}
sb
.append(" 跳转到:<select name='goToPage' οnchange='javascript:goPage(this.value)'>");
int s = result.getPage().getTotalCount();
for (int i = 1; i <= s; i++) {
sb.append("<option value=").append(i);
if (Integer.parseInt(page) == i)
sb.append(" selected");
sb.append(">第").append(i).append("页</option>");
}
sb.append("</select>");
sb.append("<script language=javascript>");
sb.append("function goPage(page){").append("window.location='")
.append(url);
if (url.indexOf("?") == -1)
sb.append("?page='+").append("page");
else
sb.append("&page='+").append("page");
sb.append("+'");
linkParams(sb);
sb.append("';");
sb.append("}");
sb.append("</script>");
}
try {
if (sb != null) {
JspWriter out = pageContext.getOut();
out.print(sb);
}
} catch (Exception e) {
throw new JspException(e);
}
return EVAL_PAGE;
}
/**
* 链接参数处理
* @param sb
*/
private void linkParams(StringBuffer sb) {
for (int i = 0; i < key.size(); i++) {
sb.append("&").append(key.get(i)).append("=").append(
kv.get(key.get(i)));
}
}
}
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 自定义的分页标签
*
* @author 马万林
*
*/
public class NumenTag extends TagSupport {
private String url = null;
private Result result;
private String page = null;
private String[] p;
private Map kv = new HashMap();
private List key = null;
/**
* 分离参数
* @param params
*/
public void setParams(String params) {
key = new ArrayList();
p = params.split(";");
for (int i = 0; p.length>1&&i < p.length; i++) {
kv.put(p[i].split(":")[0], p[i].split(":")[1]);
key.add(p[i].split(":")[0]);
}
}
/**
* 分页的结果
* @param result
*/
public void setResult(String result) {
this.result = (Result) pageContext.getRequest().getAttribute("result");
this.page = (String) pageContext.getRequest().getAttribute("page");
}
public void setUrl(String url) {
this.url = url;
}
public int doStartTag() throws JspException {
StringBuffer sb = null;
if (result != null && result.getContent() != null
&& result.getContent().size() > 0) {
sb = new StringBuffer("分页: ");
if (result.getPage().getHasPrePage()){
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=1");
else
sb.append("&page=1");
linkParams(sb);
sb.append("'>").append("首页").append("</a>").append(" | ");
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(
result.getPage().getPreviousPage());
else
sb.append("&page=").append(
result.getPage().getPreviousPage());
linkParams(sb);
sb.append("'>").append("上页").append("</a>").append(" | ");
}
if (result.getPage().getHasNextPage()) {
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(result.getPage().getNextPage());
else
sb.append("&page=").append(result.getPage().getNextPage());
linkParams(sb);
sb.append("'>").append("下页").append("</a>").append(" | ");
sb.append("<a href='").append(url);
if (url.indexOf("?") == -1)
sb.append("?page=").append(result.getPage().getTotalPage());
else
sb.append("&page=").append(result.getPage().getTotalPage());
linkParams(sb);
sb.append("'>").append("尾页").append("</a>");
}
sb
.append(" 跳转到:<select name='goToPage' οnchange='javascript:goPage(this.value)'>");
int s = result.getPage().getTotalCount();
for (int i = 1; i <= s; i++) {
sb.append("<option value=").append(i);
if (Integer.parseInt(page) == i)
sb.append(" selected");
sb.append(">第").append(i).append("页</option>");
}
sb.append("</select>");
sb.append("<script language=javascript>");
sb.append("function goPage(page){").append("window.location='")
.append(url);
if (url.indexOf("?") == -1)
sb.append("?page='+").append("page");
else
sb.append("&page='+").append("page");
sb.append("+'");
linkParams(sb);
sb.append("';");
sb.append("}");
sb.append("</script>");
}
try {
if (sb != null) {
JspWriter out = pageContext.getOut();
out.print(sb);
}
} catch (Exception e) {
throw new JspException(e);
}
return EVAL_PAGE;
}
/**
* 链接参数处理
* @param sb
*/
private void linkParams(StringBuffer sb) {
for (int i = 0; i < key.size(); i++) {
sb.append("&").append(key.get(i)).append("=").append(
kv.get(key.get(i)));
}
}
}
2,标签定义文件numentag.tld
<?
xml version="1.0" encoding="utf-8"
?>
<! DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" >
< taglib >
< tlib-version > 1.0 </ tlib-version >
< jsp-version > 1.2 </ jsp-version >
< short-name > numen </ short-name >
<!-- OutputTag -->
< tag >
< name > out </ name >
< tag-class > cn.cityyouth.util.NumenTag </ tag-class >
< body-content > empty </ body-content >
< attribute >
< name > url </ name >
< required > true </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > result </ name >
< required > true </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > params </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
</ tag >
</ taglib >
<! DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" >
< taglib >
< tlib-version > 1.0 </ tlib-version >
< jsp-version > 1.2 </ jsp-version >
< short-name > numen </ short-name >
<!-- OutputTag -->
< tag >
< name > out </ name >
< tag-class > cn.cityyouth.util.NumenTag </ tag-class >
< body-content > empty </ body-content >
< attribute >
< name > url </ name >
< required > true </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > result </ name >
< required > true </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
< attribute >
< name > params </ name >
< required > false </ required >
< rtexprvalue > true </ rtexprvalue >
</ attribute >
</ tag >
</ taglib >
3.js
<
%@ page
contentType
="text/html; charset=utf-8"
%
>
< %@ include file ="/common/taglibs.jsp" % >
< %@ taglib uri ="/WEB-INF/numentag.tld" prefix ="n" % >
< html >
< head >
</ head >
< body >
< table >
< tr >< td >
< n:out url ="test.do" result ="result" params ="${type}" />
</ td ></ tr >
</ table >
</ body >
</ html >
< %@ include file ="/common/taglibs.jsp" % >
< %@ taglib uri ="/WEB-INF/numentag.tld" prefix ="n" % >
< html >
< head >
</ head >
< body >
< table >
< tr >< td >
< n:out url ="test.do" result ="result" params ="${type}" />
</ td ></ tr >
</ table >
</ body >
</ html >
自定义JSP标签二
- package com.ajax;
- import java.io.IOException;
- import java.util.Enumeration;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.jsp.JspException;
- import javax.servlet.jsp.tagext.TagSupport;
- public class Pager extends TagSupport{
- private String url; //请求URI
- private int pageSize = 10; //每页要显示的记录数
- private int pageNo = 1; //当前页号
- private int recordCount; //总记录数
- @SuppressWarnings("unchecked")
- public int doStartTag() throws JspException {
- int pageCount = (recordCount + pageSize - 1) / pageSize; //计算总页数
- //拼写要输出到页面的HTML文本
- StringBuilder sb = new StringBuilder();
- sb.append("<style type=\"text/css\">");
- sb.append(".pagination {padding: 5px;float:right;font-size:12px;}");
- sb.append(".pagination a, .pagination a:link, .pagination a:visited {padding:2px 5px;margin:2px;border:1px solid #aaaadd;text-decoration:none;color:#006699;}");
- sb.append(".pagination a:hover, .pagination a:active {border: 1px solid #ff0000;color: #000;text-decoration: none;}");
- sb.append(".pagination span.current {padding: 2px 5px;margin: 2px;border: 1px solid #ff0000;font-weight: bold;background-color: #ff0000;color: #FFF;}");
- sb.append(".pagination span.disabled {padding: 2px 5px;margin: 2px;border: 1px solid #eee; color: #ddd;}");
- sb.append("</style>\r\n");
- sb.append("<div class=\"pagination\">\r\n");
- if(recordCount == 0){
- sb.append("<strong>没有可显示的项目</strong>\r\n");
- }else{
- //页号越界处理
- if(pageNo > pageCount){ pageNo = pageCount; }
- if(pageNo < 1){ pageNo = 1; }
- sb.append("<form method=\"post\" action=\"").append(this.url)
- .append("\" name=\"qPagerForm\">\r\n");
- //获取请求中的所有参数
- HttpServletRequest request = (HttpServletRequest) pageContext
- .getRequest();
- Enumeration<String> enumeration = request.getParameterNames();
- String name = null; //参数名
- String value = null; //参数值
- //把请求中的所有参数当作隐藏表单域
- while (enumeration.hasMoreElements()) {
- name = enumeration.nextElement();
- value = request.getParameter(name);
- // 去除页号
- if (name.equals("pageNo")) {
- if (null != value && !"".equals(value)) {
- pageNo = Integer.parseInt(value);
- }
- continue;
- }
- sb.append("<input type=\"hidden\" name=\"")
- .append(name)
- .append("\" value=\"")
- .append(value)
- .append("\"/>\r\n");
- }
- // 把当前页号设置成请求参数
- sb.append("<input type=\"hidden\" name=\"").append("pageNo")
- .append("\" value=\"").append(pageNo).append("\"/>\r\n");
- // 输出统计数据
- sb.append(" 共<strong>").append(recordCount)
- .append("</strong>项")
- .append(",<strong>")
- .append(pageCount)
- .append("</strong>页: \r\n");
- //上一页处理
- if (pageNo == 1) {
- sb.append("<span class=\"disabled\">« 上一页")
- .append("</span>\r\n");
- } else {
- sb.append("<a href=\"javascript:turnOverPage(")
- .append((pageNo - 1))
- .append(")\">« 上一页</a>\r\n");
- }
- //如果前面页数过多,显示"..."
- int start = 1;
- if(this.pageNo > 4){
- start = this.pageNo - 1;
- sb.append("<a href=\"javascript:turnOverPage(1)\">1</a>\r\n");
- sb.append("<a href=\"javascript:turnOverPage(2)\">2</a>\r\n");
- sb.append("…\r\n");
- }
- //显示当前页附近的页
- int end = this.pageNo + 1;
- if(end > pageCount){
- end = pageCount;
- }
- for(int i = start; i <= end; i++){
- if(pageNo == i){ //当前页号不需要超链接
- sb.append("<span class=\"current\">")
- .append(i)
- .append("</span>\r\n");
- }else{
- sb.append("<a href=\"javascript:turnOverPage(")
- .append(i)
- .append(")\">")
- .append(i)
- .append("</a>\r\n");
- }
- }
- //如果后面页数过多,显示"..."
- if(end < pageCount - 2){
- sb.append("…\r\n");
- }
- if(end < pageCount - 1){
- sb.append("<a href=\"javascript:turnOverPage(")
- .append(pageCount - 1)
- .append(")\">")
- .append(pageCount - 1)
- .append("</a>\r\n");
- }
- if(end < pageCount){
- sb.append("<a href=\"javascript:turnOverPage(")
- .append(pageCount)
- .append(")\">")
- .append(pageCount)
- .append("</a>\r\n");
- }
- //下一页处理
- if (pageNo == pageCount) {
- sb.append("<span class=\"disabled\">下一页 »")
- .append("</span>\r\n");
- } else {
- sb.append("<a href=\"javascript:turnOverPage(")
- .append((pageNo + 1))
- .append(")\">下一页 »</a>\r\n");
- }
- sb.append("</form>\r\n");
- // 生成提交表单的JS
- sb.append("<script language=\"javascript\">\r\n");
- sb.append(" function turnOverPage(no){\r\n");
- sb.append(" if(no>").append(pageCount).append("){");
- sb.append(" no=").append(pageCount).append(";}\r\n");
- sb.append(" if(no<1){no=1;}\r\n");
- sb.append(" document.qPagerForm.pageNo.value=no;\r\n");
- sb.append(" document.qPagerForm.submit();\r\n");
- sb.append(" }\r\n");
- sb.append("</script>\r\n");
- }
- sb.append("</div>\r\n");
- //把生成的HTML输出到响应中
- try {
- pageContext.getOut().println(sb.toString());
- } catch (IOException e) {
- throw new JspException(e);
- }
- return SKIP_BODY; //本标签主体为空,所以直接跳过主体
- }
- public void setUrl(String url) {
- this.url = url;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- public void setPageNo(int pageNo) {
- this.pageNo = pageNo;
- }
- public void setRecordCount(int recordCount) {
- this.recordCount = recordCount;
- }
- }
- package com.ajax;
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- public class Personbean {
- private Connection ct=null;
- private PreparedStatement ps=null;
- private ResultSet rs=null;
- public List all(int pageNo,int pageSize){
- List list=new ArrayList();
- try{
- ct=Conn.getinstance();
- ps=ct.prepareStatement("select top "+pageSize+"* from Person where pid not in (select top "+pageSize*(pageNo-1)+" pid from Person ) ");
- rs=ps.executeQuery();
- Person p=null;
- while(rs.next()){
- p=new Person();
- p.setPid(rs.getInt(1));
- p.setMname(rs.getString(2));
- list.add(p);
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- DBclose.close(ct, ps, rs);
- }
- return list;
- }
- public int Count() {
- int rowCount=0;
- int pageSize=10;
- int pageCount=0;
- try{
- ct=Conn.getinstance();
- ps=ct.prepareStatement("select count(*) from Person ");
- rs=ps.executeQuery();
- if(rs.next()){
- rowCount=rs.getInt(1);
- }
- if(rowCount%pageSize==0){
- pageCount=rowCount/pageSize;
- }else{
- pageCount=rowCount/pageSize+1;
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- DBclose.close(ct, ps, rs);
- }
- return pageCount;
- }
- public int reCount(){
- int recordCount=0;
- try{
- ct=Conn.getinstance();
- ps=ct.prepareStatement("select count(*) from Person");
- rs=ps.executeQuery();
- if(rs.next()){
- recordCount=rs.getInt(1);
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- DBclose.close(ct, ps, rs);
- }
- return recordCount;
- }
- }
- package com.ajax2;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.util.ArrayList;
- import java.util.List;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import com.ajax.Personbean;
- public class Temp extends HttpServlet {
- /**
- * The doGet method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to get.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");
- PrintWriter out = response.getWriter();
- Personbean pb=new Personbean();
- int pageNo=Integer.parseInt((String)request.getParameter("pageNo"));
- System.out.print(pageNo);
- int pageSize=10;
- ArrayList list=(ArrayList)pb.all(pageNo, pageSize);
- int pageCount=pb.Count();
- int recordCount=pb.reCount();
- request.setAttribute("pageCount", pageCount+"");
- request.setAttribute("recordCount", recordCount+"");
- request.setAttribute("pageNo", pageNo+"");
- request.setAttribute("pageSize", pageSize+"");
- request.setAttribute("list", list);
- request.getRequestDispatcher("/First.jsp").forward(request, response);
- }
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- this.doGet(request, response);
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd">
- <tlib-version>0.9</tlib-version>
- <!--标签头-->
- <short-name>w</short-name>
- <!--将来在页面用taglib引用时的uri属性,这部分的名字可以随便写,只要是符合HTTP网址形式的 -->
- <uri>http://javacrazyer.iteye.com/tags/pager</uri>
- <!-- 自定义标签的描述信息 -->
- <tag>
- <!-- 标签名 -->
- <name>pager</name>
- <!-- 对应的标签处理类全限定名 -->
- <tag-class>com.ajax.Pager</tag-class>
- <!-- 标签主体的类型 -->
- <body-content>empty</body-content>
- <!-- 当前页号属性的描述信息 -->
- <attribute>
- <!-- 属性名 -->
- <name>pageNo</name>
- <!-- 该属性是否为必要的 -->
- <required>true</required>
- <!-- 属性值是否可以在JSP运行时期动态产生 -->
- <rtexprvalue>true</rtexprvalue>
- <!-- 属性的数据类型 -->
- <type>int</type>
- </attribute>
- <!-- 总记录数属性的描述信息 -->
- <attribute>
- <name>recordCount</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>int</type>
- </attribute>
- <!-- 总页数属性的描述信息 -->
- <attribute>
- <name>pageSize</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>int</type>
- </attribute>
- <!-- 分页标签要跳转的URI属性的描述信息 -->
- <attribute>
- <name>url</name>
- <required>true</required>
- <rtexprvalue>true</rtexprvalue>
- <type>java.lang.String</type>
- </attribute>
- </tag>
- </taglib>
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <servlet>
- <description>This is the description of my J2EE component</description>
- <display-name>This is the display name of my J2EE component</display-name>
- <servlet-name>Show</servlet-name>
- <servlet-class>com.ajax2.Show</servlet-class>
- </servlet>
- <servlet>
- <description>This is the description of my J2EE component</description>
- <display-name>This is the display name of my J2EE component</display-name>
- <servlet-name>temp</servlet-name>
- <servlet-class>com.ajax2.Temp</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Show</servlet-name>
- <url-pattern>/test</url-pattern>
- </servlet-mapping>
- <servlet-mapping>
- <servlet-name>temp</servlet-name>
- <url-pattern>/go</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <jsp-config> <taglib> <taglib-uri>/tld/lhp2012</taglib-uri> <taglib-location>/WEB-INF/pager.tld</taglib-location> </taglib> </jsp-config>
- <filter>
- <filter-name>encode</filter-name>
- <filter-class>com.ajax.Chin</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>encode</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
- <%@ page language="java" import="java.util.*,com.ajax.*" pageEncoding="utf-8"%>
- <%@taglib uri="http://javacrazyer.iteye.com/tags/pager" prefix="q"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- String a=(String)request.getAttribute("pageCount");
- int pageCount=Integer.parseInt(a);
- ArrayList list=(ArrayList)request.getAttribute("list");
- int pageNo=Integer.parseInt((String)request.getAttribute("pageNo"));
- int pageSize=Integer.parseInt((String)request.getAttribute("pageSize"));
- int recordCount=Integer.parseInt((String)request.getAttribute("recordCount"));
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'First.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache" charset="utf-8">
- <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">
- </head>
- <body>
- <table>
- <tr><th>编号</th><th>姓名</th></tr>
- <%for(int i=0;i<list.size();i++){
- Person p=(Person)list.get(i);
- %>
- <tr><td><%=p.getPid() %></td><td><%=p.getMname() %></td></tr>
- <%} %>
- </table>
- <q:pager pageSize="${pageSize}" pageNo="${pageNo}" url="go" recordCount="${recordCount}"/>
- </body>
- </html>