一个对等好的自定义标签-分页(一)

一个相当好的自定义标签---分页(一)

发现在系统中有好多写得很好的代码,也不知道是哪位前辈留下来的.整理一下...
自定义分页标签库

1:在配置文件中配置

一个对等好的自定义标签-分页(一)<!-- self Tag Library Descriptors -->
一个对等好的自定义标签-分页(一)  
<taglib>
一个对等好的自定义标签-分页(一)    
<taglib-uri>/WEB-INF/self-html.tld</taglib-uri>
一个对等好的自定义标签-分页(一)    
<taglib-location>/WEB-INF/self-html.tld</taglib-location>
一个对等好的自定义标签-分页(一)  
</taglib>


2:在self-html.tld中page标签的配置

一个对等好的自定义标签-分页(一)<tag>
一个对等好的自定义标签-分页(一)        
<name>page</name>
一个对等好的自定义标签-分页(一)        
<tagclass>com.jbbis.netedu.common.util.taglib.PageTag</tagclass>
一个对等好的自定义标签-分页(一)        
<bodycontent>empty</bodycontent>
一个对等好的自定义标签-分页(一)        
<info>tag here</info>
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>name</name>
一个对等好的自定义标签-分页(一)        
<required>true</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>false</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>    
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>pageNum</name>
一个对等好的自定义标签-分页(一)        
<required>false</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>false</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>        
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>method</name>
一个对等好的自定义标签-分页(一)        
<required>false</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>false</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>    
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>methodValue</name>
一个对等好的自定义标签-分页(一)        
<required>false</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>true</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>    
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>form</name>
一个对等好的自定义标签-分页(一)        
<required>true</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>false</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>        
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>action</name>
一个对等好的自定义标签-分页(一)        
<required>flase</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>true</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>
一个对等好的自定义标签-分页(一)        
<attribute>
一个对等好的自定义标签-分页(一)        
<name>returnLevel</name>
一个对等好的自定义标签-分页(一)        
<required>flase</required>
一个对等好的自定义标签-分页(一)        
<rtexprvalue>true</rtexprvalue>
一个对等好的自定义标签-分页(一)        
</attribute>                                    
一个对等好的自定义标签-分页(一)    
</tag>


其实从这儿也可以看到在PageTag文件中是一些什么值了...

3:PageTag中的具体操作(精华全部在这儿啦)

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)/**//*
一个对等好的自定义标签-分页(一) * Created on 2004-6-25
一个对等好的自定义标签-分页(一) *
一个对等好的自定义标签-分页(一) 
*/

一个对等好的自定义标签-分页(一)
package com.jbbis.netedu.common.util.taglib;
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)
import java.io.IOException;
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)
import javax.servlet.jsp.JspException;
一个对等好的自定义标签-分页(一)
import javax.servlet.jsp.JspWriter;
一个对等好的自定义标签-分页(一)
import javax.servlet.jsp.tagext.TagSupport;
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)
import com.jbbis.netedu.common.page.NullPage;
一个对等好的自定义标签-分页(一)
import com.jbbis.netedu.common.page.Page;
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)
/** *//**
一个对等好的自定义标签-分页(一) * 
@author leo_deng
一个对等好的自定义标签-分页(一) *
一个对等好的自定义标签-分页(一) 
*/

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)
public class PageTag extends TagSupport 一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
/**//* (non-Javadoc)
一个对等好的自定义标签-分页(一)     * @see javax.servlet.jsp.tagext.Tag#doStartTag()
一个对等好的自定义标签-分页(一)     
*/

一个对等好的自定义标签-分页(一)    
private String name;
一个对等好的自定义标签-分页(一)    
private String pageNum="pageNum";
一个对等好的自定义标签-分页(一)    
private String method="method";
一个对等好的自定义标签-分页(一)    
private String methodValue;
一个对等好的自定义标签-分页(一)    
private String form="mainForm";
一个对等好的自定义标签-分页(一)    
private String action;
一个对等好的自定义标签-分页(一)    
private String returnLevel;
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)    
private final int CONST_FIRST=1;
一个对等好的自定义标签-分页(一)    
private final int CONST_NEXT=2;
一个对等好的自定义标签-分页(一)    
private final int CONST_PRIOR=3;
一个对等好的自定义标签-分页(一)    
private final int CONST_LAST=4;
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)    
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
public int doStartTag() throws JspException 一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)        
// TODO Auto-generated method stub
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)
        try一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)            JspWriter out 
= pageContext.getOut() ;
一个对等好的自定义标签-分页(一)            Page page
=(Page)pageContext.getRequest().getAttribute(name);
一个对等好的自定义标签-分页(一)            
if(page==null)
一个对等好的自定义标签-分页(一)                page
=NullPage.instance();
一个对等好的自定义标签-分页(一)            out.print(getHtml(page.getPageNumber(),page.getPageCount()));
一个对等好的自定义标签-分页(一)            out.print(getJs(page.getPageNumber(),page.getPageCount()));
一个对等好的自定义标签-分页(一)            
//jspwriter是一个隐含对象,用于向jsp网页输出内容。输出的目标由
一个对等好的自定义标签-分页(一)            
// pagecontext.getout提供
一个对等好的自定义标签-分页(一)            
一个对等好的自定义标签-分页(一)            
//向jsp网页上下文输出
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)
          }
catch(IOException ioException)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)            
throw new JspException(ioException.getMessage() );
一个对等好的自定义标签-分页(一)          }
//catch
一个对等好的自定义标签-分页(一)
          return(SKIP_BODY);
一个对等好的自定义标签-分页(一)    }

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
/**//*
一个对等好的自定义标签-分页(一)     * <
一个对等好的自定义标签-分页(一)     * <!--
一个对等好的自定义标签-分页(一)     * function page_next(){
一个对等好的自定义标签-分页(一)     *  form.action=""
一个对等好的自定义标签-分页(一)     *     form.pageNum=""
一个对等好的自定义标签-分页(一)     *     form.method.value=""
一个对等好的自定义标签-分页(一)     *     form.submit;
一个对等好的自定义标签-分页(一)     * 
一个对等好的自定义标签-分页(一)     * }
一个对等好的自定义标签-分页(一)     * function page_prior()
一个对等好的自定义标签-分页(一)     * function page_first()
一个对等好的自定义标签-分页(一)     * funciotn page_last()
一个对等好的自定义标签-分页(一)     * 
一个对等好的自定义标签-分页(一)     * //-->
一个对等好的自定义标签-分页(一)     * <div class="listbox_page">
一个对等好的自定义标签-分页(一)            <a class="page" ><img src="public/icon/first.gif" alt="首页" align="absmiddle" border="0" onclick="page_first()"/></a>
一个对等好的自定义标签-分页(一)            <a class="page" ><img src="public/icon/previous.gif" alt="上页" align="absmiddle" border="0" onclick="page_first()"/></a>
一个对等好的自定义标签-分页(一)            第<input class="page_number" name="pageNum" value="">    <img src="page_go.gif" class="page_go">页
一个对等好的自定义标签-分页(一)            <a class="page" ><img src="public/icon/next.gif" alt="下页" align="absmiddle" border="0"/ onclick="page_next()"></a>
一个对等好的自定义标签-分页(一)            <a class="page" ><img src="public/icon/last.gif" alt="末页" align="absmiddle" border="0"/ onclick="page_prior()"></a>
一个对等好的自定义标签-分页(一)            共 <span class="page_sum">1000</span> 页 
一个对等好的自定义标签-分页(一)        </div>
一个对等好的自定义标签-分页(一)     *
一个对等好的自定义标签-分页(一)     * 
*/

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
private String getJs(int pageNum,int totalNum)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)        StringBuffer sb
=new StringBuffer();
一个对等好的自定义标签-分页(一)        sb.append(
"\n<script language=\"JavaScript\">\n<!--");
一个对等好的自定义标签-分页(一)            sb.append(printFunction(
"page_first",pageNum,totalNum,CONST_FIRST));
一个对等好的自定义标签-分页(一)            sb.append(printFunction(
"page_next",pageNum,totalNum,CONST_NEXT));
一个对等好的自定义标签-分页(一)            sb.append(printFunction(
"page_prior",pageNum,totalNum,CONST_PRIOR));
一个对等好的自定义标签-分页(一)            sb.append(printFunction(
"page_last",pageNum,totalNum,CONST_LAST));
一个对等好的自定义标签-分页(一)            getGoJs(sb,pageNum,totalNum);
一个对等好的自定义标签-分页(一)        sb.append(
"\n //-->\n</script>");
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)        
return sb.toString();
一个对等好的自定义标签-分页(一)    }

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
private void getGoJs(StringBuffer sb,int pageNum,int totalNum)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)        sb.append(
"function page_go(obj){\n");
一个对等好的自定义标签-分页(一)        sb.append(
"var page_number=document.getElementById(\"page_number\");\n");
一个对等好的自定义标签-分页(一)        sb.append(
"if( page_number.value != new Number(page_number.value))return alert(\"请输入正确的页数\");\n");
一个对等好的自定义标签-分页(一)        sb.append(
"if(page_number.value<1) page_number.value=1;if(page_number.value>");
一个对等好的自定义标签-分页(一)        sb.append(totalNum);
一个对等好的自定义标签-分页(一)        sb.append(
")page_number.value=");
一个对等好的自定义标签-分页(一)        sb.append(totalNum);
一个对等好的自定义标签-分页(一)        sb.append(
";\n");
一个对等好的自定义标签-分页(一)        sb.append(
"if(page_number.value!="+pageNum+")");
一个对等好的自定义标签-分页(一)        sb.append(
"submitForPageNum(obj);\n");
一个对等好的自定义标签-分页(一)        sb.append(
"}");
一个对等好的自定义标签-分页(一)    }

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
private StringBuffer printFunction(String function,int pageNumber,int totalNumber,int pageConst)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)        StringBuffer sb
=new StringBuffer();
一个对等好的自定义标签-分页(一)        sb.append(
"\nfunction "+function+"(){");
一个对等好的自定义标签-分页(一)        sb.append(
"\nevent.returnValue=false;");
一个对等好的自定义标签-分页(一)        sb.append(printAction());
一个对等好的自定义标签-分页(一)        sb.append(printMethod());
一个对等好的自定义标签-分页(一)        
//sb.append("\n"+this.form+".submit();\n}");
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)
        if(totalNumber>1)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)            
switch(pageConst)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)                
case CONST_FIRST:
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)                    
if(pageNumber>1)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)                        sb.append(printPageNum(String.valueOf(
1)));
一个对等好的自定义标签-分页(一)                        sb.append(
"\n submitForPageNum("+this.form+");");
一个对等好的自定义标签-分页(一)                    }

一个对等好的自定义标签-分页(一)                    
break;
一个对等好的自定义标签-分页(一)                
case CONST_LAST:
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)                    
if(pageNumber<totalNumber)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)                        sb.append(printPageNum(String.valueOf(totalNumber)));
一个对等好的自定义标签-分页(一)                        sb.append(
"\n submitForPageNum("+this.form+");");
一个对等好的自定义标签-分页(一)                    }

一个对等好的自定义标签-分页(一)                    
break;
一个对等好的自定义标签-分页(一)                
case CONST_PRIOR:
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)                    
if(pageNumber>1)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)                        sb.append(printPageNum(String.valueOf(pageNumber
-1)));
一个对等好的自定义标签-分页(一)                        sb.append(
"\n submitForPageNum("+this.form+");");
一个对等好的自定义标签-分页(一)                    }

一个对等好的自定义标签-分页(一)                    
break;                        
一个对等好的自定义标签-分页(一)                
case CONST_NEXT:
一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)                    
if(pageNumber<totalNumber)一个对等好的自定义标签-分页(一){
一个对等好的自定义标签-分页(一)                        sb.append(printPageNum(String.valueOf(pageNumber
+1)));
一个对等好的自定义标签-分页(一)                        sb.append(
"\n submitForPageNum("+this.form+");");
一个对等好的自定义标签-分页(一)                    }

一个对等好的自定义标签-分页(一)                    
break;
一个对等好的自定义标签-分页(一)            }

一个对等好的自定义标签-分页(一)        }

一个对等好的自定义标签-分页(一)        
一个对等好的自定义标签-分页(一)        sb.append(
"\n}");
一个对等好的自定义标签-分页(一)        
return sb;        
一个对等好的自定义标签-分页(一)    }

一个对等好的自定义标签-分页(一)一个对等好的自定义标签-分页(一)    
/**//*
一个对等好的自定义标签-分页(一)    private StringBuffer printFunction(String function,String pageNum,int pageConst){
一个对等好的自定义标签-分页(一)        StringBuffer sb=new StringBuffer();
一个对等好的自定义标签-分页(一)        sb.append("\nfunction "+function+"(){");
一个对等好的自定义标签-分页(一)        sb.append("\nevent.returnValue=false;");
一个对等好的自定义标签-分页(一)        sb.append(printAction());
一个对等好的自定义标签-分页(一)        sb.append(printMethod());
一个对等好的自定义标签-分页(一)        sb.append(printPageNum(pageNum));
一个对等好的自定义标签-分页(一)        //sb.append("\n"+this.form+".submit();\n}");
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)                
一个对等好的自定义标签-分页(一)                sb.append("\n submitForPageNum("+this.form+");\n}");
一个对等好的自定义标签-分页(一)
一个对等好的自定义标签-分页(一)        
一个对等好的自定义标签-分页(一)        sb.append("\n}");
一个对等好的自定义标签-分页(一)    

文章评论