JavaWeb_带父标签的自定义标签

1.开发有父标签的标签:

1)父标签无法获取子标签的引用,父标签仅把子标签作为标签体来使用

 

2)子标签可以通过getParent()方法获取父标签的引用(需继承SimpleTagSupport或自实现SimpleTag接口的该方法):

若子标签的确有父标签,JSP引擎会把代表父标签的引用通过setParent(JspTag parent)赋给标签处理器

 

3)注意:父标签的类型是JspTag类型

带标签体的自定义标签:该接口是一个空接口,但是来统一SimpleTag和Tag的,实际使用需要进行类型的强制转换

 

4)在tld配置文件中,无需为父标签有额外的配置,但,子标签是以标签体的形式存在的,所以父标签的<body-content></body-content>,需设置为scriptless

 

5)实现

<c:choose>

  <c:when test="${param.age > 24}">大学毕业</c:when>

  <c:when test="${param.age > 20}">高中毕业</c:when>

  <c:otherwise>高中以下...</c:otherwise>

</c:choose>

 

>开发3个标签:choose,when,otherwise

>其中when标签有一个boolean类型的属性:test

>choose是when和otherwise的父标签,when在otherwise之前使用。

>when在otherwise之前使用

 

>在父标签choose中定义一个"全局"的boolean类型的flag:用于判断子标签在满足条件的情况下是否执行。

  * 若when的test为true,且when的父标签的flag也为true,则执行when的标签体(正常输出标签体的内容)。

  * 若when的test为true,且when的父标签的flag也为false,则不执行标签体。

  * 若flag为true,otherwise执行标签体。

 

posted @ 2019-07-13 17:34  鸿森  阅读(202)  评论(0编辑  收藏  举报