java 带父标签的自定义标签

来源:互联网 发布:wan端口未连接 编辑:程序博客网 时间:2024/05/17 03:32

javaWeb带父标签的自定义标签(2)

要实现如下代码    <c:choose>        <c:when test="${param.age>24}">大学毕业</c:when>        <c:when test="${param.age>20}">高中毕业</c:when>        <c:otherwise>高中以下</c:otherwise>    </c:choose>            1>开发3个标签:choose,when,otherwise        2>其中when标签有一个boolean 类型的属性:test        3>choose 是when和otherwise的父标签,when在otherwise之前使用        4> 在父标签 choose中定义一个“全局”的boolean 类型的flag:用于判断子标签在满足条件的情况下是否执行。            1> 若when 的test为true,且when的父标签的flag也为ture                 则执行when的标签体(正常输出标签体的内容),同时把flag设置为false                        2> 若when 的test为true,且when的父标签的flag也为false,则不执行标签体。            3> 若flag为ture,otherwise执行标签体。

方法/步骤

 
  1.  

    1.传统标签代码如下

    javaWeb带父标签的自定义标签(2)
  2.  

    2.运行效果如下

    javaWeb带父标签的自定义标签(2)
    javaWeb带父标签的自定义标签(2)
    javaWeb带父标签的自定义标签(2)
  3.  

    3.新建三个标签对应的管理器类

    javaWeb带父标签的自定义标签(2)
  4.  

    4.choose标签为父标签,有个flag控制开关

    javaWeb带父标签的自定义标签(2)
  5.  

    5.when标签有参数 test 并且当父标签的flag和test都为true的时候才执行 正常执行when标签,并把父标签的flag赋值为flase

    javaWeb带父标签的自定义标签(2)
  6.  

    6.otherwise 标签管理器类,当没有when执行,也就是父标签的flag为true的时候才执行

    javaWeb带父标签的自定义标签(2)
  7.  

    7.myTag.tld文件配置如下

    javaWeb带父标签的自定义标签(2)
  8.  

    8.页面修改如下

    javaWeb带父标签的自定义标签(2)
  9.  

    9.运行效果

    javaWeb带父标签的自定义标签(2)
  10.