jsp自定义标签

    Jsp标签库是一种非常优秀的表现层组件技术。主要为了代替丑陋的jsp脚本,在Html界面中使用JSp有如下几个坏处:

      1)、难以阅读

      2)、JSp脚本和html代码混杂,维护成本高

      3)、Html页面嵌入JSp脚本,导致美工人员难以开发。

JSp2版本中开发标签库需如下步骤:

      1)、开发自定义标签处理类

      2)、建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库可以包含多个标签。

      3)、在JSp文件中使用自定义标签。

一、开发自定义标签类

    自定义标签类应该继承一个父类:javax.servlet.jsp.tagext.SimpleTagSupport,除此之外,标签类还有如下要求:

    1)如标签类包含属性,则每个属性都应对应相应的getter和setter方法。

    2)重写toTag()方法,这个方法负责生成页面内容。

 public class QueryTag extends SimpleTagSupport{

           private String driver;

           private String url;

           //此处省略各成员的setter和getter方法

      public void doTag() throws JspException{

            //获取页面输出流

            Writer out = getJspContext().getOut();

           out.write("<table>");

           out.write("<td>");

           out.write(driver);

           out.write("</td>");

           out.write("<td>");

            out.write( url);

            out.write("</td>");

    }

}

 

一、建立TLD文件

     可以在web容器tomcat中,webapps/examples/web-inf/jsp2下jsp2-example.taglib.tld文件,作为tld的范例。将该文件复制到web项目的WEB-INF路径下。

 <?xml version="1.0" encoding="UTF-8" ?>

<taglib 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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"

    version="2.0">

    <description>A tag library exercising SimpleTag handlers.</description>

    <tlib-version>1.0</tlib-version>

    <short-name>SimpleTagLibrary</short-name>

   <!--此属性非常重要,指定标签库的URL,JSP页面中根据URI属性定位要使用的标签库-->

    <uri>http://www.crazyit.org/mytaglib</uri>

    <tag>

       <! -- 定义标签名,JSP页面根据此标签名来指明使用的标签 -->

       <name>helloWorld</name>

       <!--   标签处理类 -->

       <tag-class>com.le.QueryTag</tag-class>

        <!--   标签体 -->

       <body-content>empty</body-content>

        <!--   配置属性标签 -->

          <attribute>

              <name>driver</name>

               <!--   是否为必输属性 -->

               <required>true</required>

               <!--   是否支持jsp脚本 -->

               <fragment>true</fragment>

           </attribute>

          <!--   配置属性标签 -->

          <attribute>

              <name>url</name>

               <!--   是否为必输属性 -->

               <required>true</required>

               <!--   是否支持jsp脚本 -->

               <fragment>true</fragment>

           </attribute>

 

三、在页面中使用自定义标签

queryTap.jsp

 <%@ taglib uri="http://www.crazyit.org/mytaglib“ prefix="mytag" %>

<mytag:query

     driver="com.mysql.jdbc.Driver"

      url="jdbc:mysql://localhost:3306/javaee"

      />

   在界面中访问localhose:8888/tagDemo/queryTap.jsp页面显示driver和url的值。

你可能感兴趣的:(jsp自定义标签)