JSP2的自定义标签

前端之家收集整理的这篇文章主要介绍了JSP2的自定义标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

自定义标签的原因

在JSP中,如果一个标签可以代替一个for循环的功能,这样的页面是不是看起来更简洁呢?因为,html页面中不再有java代码了。这就导致了自定义标签的产生。

自定义标签的步骤

  1. 开发自定标签的处理类

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

  3. 在jsp中使用自定义标签

开发自定义标签处理类

自定义标签处理类有以下几点要求:

  1. 类必须继承SimpleTagSupport

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

  3. 如果类中有属性,那么必须有对应的getter和setter方法
    下面开发一个简单地标签处理类

       public class HelloTag extends SimpleTagSupport{
           @Override
           public void doTag() throws JspException,IOException {
               getJspContext().getOut().write("hello world"+new Date());
           }
       }

建立*.tld文件

这个文件的存放位置是WEB-INF目录中任意路径下,文件示例如下所示:

    
    A tag library exercising SimpleTag handlers.
        1.0
        MyTagLibrary
        
        http://com.zuobiao.zhang/mytaglib
        
            Outputs Hello,World
            @H_301_64@
            helloWorld
            
            com.zuobiao.zhang.tag.HelloTag
            
            empty
        
    

关于tag元素下常用子元素的说明:

body-content:这个元素很重要,定义了标签内容,值有如下几个:

  1. tagdependent:指定标签处理类自己负责处理标签

  2. empty:指定该标签只能作为空标签使用

  3. scriptless:指定该标签标签体可以是静态html元素、表达式语言,但不允许出现jsp脚本

  4. JSP:指定该标签标签体可以使用JSP脚本

dynamic-attributes:指定该标签是否支持动态属性

使用标签

使用标签库主要分为以下两步:

  1. 使用taglib编译指令导入标签

  2. 在JSP页面中使用自定义标签
    taglib语法如下所示:

    <%@ taglib uri="http://com.zuobiao.zhang/mytaglib" prefix="mytag"%>

    使用标签的语法格式如下所示:

    
    
    
    <%-- 如果没有标签体,可以使用这样的 --%>
    

    下面是使用helloworld标签代码

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://com.zuobiao.zhang/mytaglib" prefix="mytag"%>
    
        
            <a href="/tag/zidingyi/" target="_blank" class="keywords">自定义</a><a href="/tag/biaoqian/" target="_blank" class="keywords">标签</a>的使用
        
        
            
        
    

    下一节会介绍带属性标签

猜你在找的程序笔记相关文章