Servlet编程之自定义标签

来源:互联网 发布:javascript代码规范 编辑:程序博客网 时间:2024/04/20 09:13

  自定义标签的目的:以简单的标签,隐藏复杂的逻辑。

  使用自定义标签配置过程:

  1. 在对应的web应用下,配置.tld文件,如${webapp}/WEB-INF/tlds/mytaglib.tld,新建tag标签如下:

 

    <tag>      <!--自定义标签名-->      <name>helloWorld</name>      <!--自定义标签处理类-->      <tag-class>domain.HelloWorldTag</tag-class>      <!--自定义标签体为空-->      <body-content>empty</body-content>    </tag>

 

     2. 在web.xml文件中配置标签库信息,这个配置是为了web容器可以定位TLD文件的位置

      

      <jsp-config><taglib>  <taglib-uri>/mytaglib</taglib-uri>  <taglib-location>/WEB-INF/tlds/mytaglib.tld</taglib-location></taglib>      </jsp-config>

       其中,<jsp-config>用于为web应用中的JSP文件提供全局配置信息;<taglib>用于指定JSP页面使用的标签库信息;

        两个子元素,<taglib-uri>元素指定在web应用程序中使用的标签库的URI标识,JSP页面的taglib指令通过这个uri

        读取到tld文件;<taglib-location>指定TLD文件的位置。

 

  3. 创建自定义标签处理类,必须继承父类javax.servlet.jsp.tagext.SimpleTagSupport,两个要求:(1)如果标签类包含属性,每个属性要有对应的getter和setter方法;(2)重写doTag()方法,这个方法负责生成页面内容

     

     public class HelloWorldTag extends SimpleTagSupport     {//复写的doTag方法,标签实际处理方法,生成自定义的页面内容public void doTag() throws IOException{//获取页面输出流,并输出字符串getJspContext().getOut().write("Hello World " + new java.util.Date());}     }

       注意,在编译时,需要将%CATALINA_HOME%/lib/jsp-api.jar包添加到环境变量CLASSPATH中,这样编译时才能找到处理包,

    否则会报错。

  4. 页面中引用该自定义标签

    

     <%@ taglib uri="/mytaglib" prefix="mytag" %>     <html><head><title>自定义标签示范</title></head><body bgcolor="#ffffc0"><h2>下面显示的是自定义标签中内容</h2><!--使用标签,其中mytag是标签前缀,根据taglib的编译指令,mytag前缀由/mytaglib的标签库处理--><mytag:helloWorld /><br/></body>     </html>


    通过以上操作步骤,启动服务器,执行结果如下(这个导入图片真扯,只能把内容贴过来了,难道是我不会用???):

   下面显示的是自定义标签中内容

     Hello World Sun Mar 09 15:04:23 CST 2014

    
    总结:以上自定义标签的demo的整体运行过程是,用户请求该页面(mytag.jsp),读取到自定义标签

       <%@ taglib uri="/mytaglib" prefix="mytag" %>,web应用到web.xml文件中根据uri标识符定位

       到标签库(mytaglib.tld)的具体位置,然后根据标签名称helloWorld定为到具体的标签,

       在标签中指定标签处理类,根据标签处理类的处理内容展现页面结果。

    

 

 

0 0
原创粉丝点击