jsp标签

    刚刚结束了一个项目,有点时间,所以先补充补充自己的知识,昨天学了一下Jsp标签,感觉挺好的,可以使jsp页面干净不少,维护起来更方便了。
    下边就开始进入正题:
首先创建一个Pagination.tld文件,标签文件:
<?xml   version="1.0"   encoding="UTF-8"?>
  <taglib>
      <tlibversion>1.0</tlibversion>
      <jspversion>1.1</jspversion>  
      <shortname>Pagination</shortname>  
      <tag>
      <name>Pagination</name>
      <tagclass>tags.Pagination</tagclass> 
      <attribute>
          <name>allpage</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
          <name>currentpage</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
          <name>action</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>
      <attribute>
          <name>allcount</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
      </attribute>
      </tag>
</taglib>

tlibversion: 标签库版本
jspversion: 标签库依赖的jsp版本
shortname:  标签库名
tag          开始一个标签
name         标签名
tagclass     指定标签处理程序类
attribute    开始一个标签属性,可用于传入参数
name         属性名
required和rtexprvalue都是属性的设置,均有2个属性ture和false用来决定是否必须指定

接下来创建该标签的处理程序类Pagination.java:

package tags;   
import java.util.*;
import javax.servlet.jsp.JspException;     
import javax.servlet.jsp.tagext.TagSupport;         
public class Pagination extends TagSupport {
    private String allpage; //总页数
    private String currentpage; //当前页数
    private String action; //form请求地址
    private String allcount; //总记录数
    public int doStartTag() throws JspException {     
        try {
            StringBuffer cont = new StringBuffer();
            String context = "<form action='"+action+"'>" +
                "<table><tr><td colspan='7' align='right'>" +
                "<a>总页数:"+allpage+"</a>&nbsp" +
                "<a>总记录数:"+allcount+"</a>&nbsp";
                if(Integer.valueOf(currentpage)>2){
                    context = context + "<a href='"+action+"?num=1'>第一

页</a>&nbsp";
                }
               
                if(Integer.valueOf(currentpage)>1){
                    context = context + "<a href='"+action+"?num="+

(Integer.valueOf(currentpage)-1)+"'>前一页</a>&nbsp";
                }
               
                    context = context + "<a >当前

页:"+currentpage+"</a>&nbsp";
                   
                if(Integer.valueOf(currentpage)<Integer.valueOf(allpage)){
                    context = context + "<a href='"+action+"?num="+

(Integer.valueOf(currentpage)+1)+"'>下一页</a>&nbsp";
                }
               
                if(Integer.valueOf(currentpage)<(Integer.valueOf(allpage)-

1)){
                    context = context + "<a href='"+action+"?

num="+allpage+"'>最后一页</a>&nbsp";
                }
               
                context = context + "</td><td align='center' width='15%'>" +
                                    "<input type='text'

size='1' name='num' id='pagenum' value=''  />" +
                                    "<input

type='submit' value='GO' id='gobutton'></td></tr></table>";
               
            pageContext.getOut().print(context);
        }catch(Exception e) {
            throw new JspException("SimpleTag:"+e.getMessage());     
        }
        return EVAL_BODY_INCLUDE;         
    }     
    public int doEndTag() {     
        return EVAL_PAGE;     
    }
    public void setAllpage(String allpage) {
        this.allpage = allpage;
    }
    public void setCurrentpage(String currentpage) {
        this.currentpage = currentpage;
    }
    public void setAction(String action) {
        this.action = action;
    }
    public void setAllcount(String allcount) {
        this.allcount = allcount;
    }
}

最后是要显示的Jsp页index.jsp:
  <%@ page language="java" pageEncoding="utf-8"%>
  <%@ taglib uri="/WEB-INF/tags/Pagination.tld" prefix="Pagination" %>
  <html>
  <head>
      <script type="text/javascript" src="js/Time.js"></script>
  </head>
  <body>
      <Pagination:Pagination allcount="20" action="servlet" currentpage="1" allpage="200"></Pagination:Pagination>
  </body>
  </html>

posted on 2007-10-30 14:34 dripstone 阅读(317) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

导航

统计

常用链接

留言簿(1)

随笔分类(1)

随笔档案(16)

友情链接

搜索

最新评论

阅读排行榜

评论排行榜