zoukankan      html  css  js  c++  java
  • 自定义标签

    在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要。如:分页。因此需要学习如何自定义自己的标签库。

    如果要实现自定义标签,那么需要如下几步:

    1. 编写标签处理类

    需要继承或者实现相关的类或者接口

    1. 编写标签描述文件

    该文件是一个XML文件,而且必须放在网站的WEB-INF目录中

    1. 在JSP中引入标签且使用

    使用taglib指令引入标签库,随后使用。

    自定标签的类体系

    详细了解下一下几个类和接口:

    ---| JspTag接口

    该接口是一个典型的标记接口。主要标记实现该接口的类可以处理标签。Seralizable

    ----| Tag接口

    该接口主要描述的是标签处理类的共性,但是实现该接口的类不能处理标签体,该接口中定义了标签处理类和JSP页面之间的通信协议。而且提供生命周期方法如:在标签开始和接结束的时候自动执行的方法。

    ------| TagSupport类

    主要负责处理标签的属性。

    -------| BodyTagSupport类

    该类主要的是处理标签的标签体。

     实现带标签体的自定义标签

    1.标签处理类

     1 public class ShowDateByBody extends BodyTagSupport {
     2     // 为了便于获取属性,那么直接在处理类中定义和属性同名的属性变量即可且提供get和set方法
     3     private String pattern;
     4     public String getPattern() {
     5         return pattern;
     6     }
     7     public void setPattern(String pattern) {
     8         this.pattern = pattern;
     9     }
    10 
    11     // 标签开始的时候自动执行
    12     public int doStartTag() throws JspException {
    13         // 创建日期对象
    14         Date date = new Date();
    15         // 创建格式化对象
    16         SimpleDateFormat format = new SimpleDateFormat(getPattern());
    17         // 格式化
    18         String str = format.format(date);
    19         // 获取JSP上下文对象
    20         PageContext pageContext = this.pageContext;
    21         // 获取JSP的OUT输出流
    22         JspWriter out = pageContext.getOut();
    23         // 获取标签提的内容
    24         BodyContent body = this.getBodyContent();
    25         String tag_body = body.getString();
    26         str = "<font color='red'>"+tag_body+"</font>"+str;
    27         // 输出
    28         try {
    29             out.write(str);
    30         } catch (IOException e) {
    31             e.printStackTrace();
    32         }
    33         return super.doStartTag();
    34     }
    35 }

    2. 描述文件

     1   <tag>  
     2     <name>showdate2</name>
     3     <tag-class>cn.itcast.custom.ShowDateByBody</tag-class>
     4     <body-content>JSP</body-content>
     5     <attribute>
     6         <name>pattern</name>
     7         <required>true</required>
     8         <rtexprvalue>true</rtexprvalue>
     9     </attribute>
    10   </tag>

    3. 引入和使用

    <date:showdate2 pattern="yyyy-MM-dd">系统时间:</date:showdate2>

  • 相关阅读:
    mysql生成百万级数量测试数据
    记2017深圳寻找工作
    好朋友的小姨,希望一起帮助下度过难关,方便的话请帮忙转发一下,谢谢。————————心情记录
    shell变量
    什么是Shell
    Windows环境下的安装gcc
    make
    gdb
    gcc
    数据库编程
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3736655.html
Copyright © 2011-2022 走看看