开发嵌套的标签

开发嵌套的标签:haveChildTag
  实际工程中往往需要多个标签来配合完成一定的功能,嵌套的标签存在父子关系,其中,父为外层标签,子为内层标签。本实例将用两个简单的标签来演示,父标签则作出逻辑判断,如果isOutput属性为true,则输出实例108中的标签helloTag;如果为false,则不输出。

  (1)第一步:开发标签实现类。
  内层的标签helloTag在实例108中已有,此处不再列出。
  haveChildTag.java
  package hello;
  import javax.servlet.jsp.tagext.BodyTagSupport;
    public class haveChildTag extends BodyTagSupport {
      private boolean isOutput;//是否输出子标签内容
      //----标签开始时调用此方法-------
      public int doStartTag(){
          if(isOutput)
              return EVAL_BODY_INCLUDE;
          else return SKIP_BODY;
      }
      //----标签结束时调用此方法-------
      public int doEndTag(){
          try{
              if(bodyContent!=null)
                bodyContent.writeOut(bodyContent.getEnclosingWriter());
          }catch(Exception e){
              System.out.println(e);
          }
          return EVAL_PAGE;
      }  
      public boolean getIsOutput() {
          return isOutput;
      }
      public void setIsOutput(boolean isOutput) {
          this.isOutput = isOutput;
      }
  }

  (2)第二步:编写标签描述tld文件。
  本例在myTag.tld文件中增加内容。在<taglib>与</taglib>之间增加的如下内容:
  <!-- haveChildTag-->
  <tag>
  <!-- 标签名称-->
  <name>haveChildTag</name>
  <!-- 标签对应的处理类-->
  <tag-class>hello.haveChildTag</tag-class>
  <!-- 标签体内容,有标签体则设为jsp-->
  <body-content>jsp</body-content>
  <!-- 标签的属性声明-->
  <attribute>
   <name>isOutput</name>
   <required>true</required>
   <rtexprvalue>true</rtexprvalue>
  </attribute>
  </tag>

  (3)第三步:在Web应用的web.xml文件中声明标签库引用。
  同样,本例与本章前面的实例使用同一个tld文件,此处不必再修改。

  (4)第四步:在JSP页面中声明并调用标签。
  useHaveChildTag.jsp
  <%@ taglib uri="/myTag" prefix="myTag" %>
  <%@ page contentType="text/html;charset=GB2312" %>
  <%@ page import="java.util.Date" %>
  <html>
    <head>
    <title>开发嵌套的标签</title>
    </head>
    <body>
  输出子标签时的结果:<br>
  <myTag:haveChildTag isOutput="true">
   <myTag:helloTag/>
  </myTag:haveChildTag><br>
  不输出子标签时的结果:<br>
  <myTag:haveChildTag isOutput="false">
   <myTag:helloTag/>
  </myTag:haveChildTag><br>
    </body>
  </html>

第一章绪论 一选择题 1. 算法的计算量的大小称为计算的( )。(B) A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于( )(C) A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2) 这三个特性。(C B) (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 .... 第二章线性表 一 选择题 1.下述哪一条是顺序存储结构的优点?( )(A) A.存储密度大 B插入运算方便 C.删除运算方便 D可方便地用于各种逻辑结构的存储表示 2.下面关于线性表的叙述中,错误的是哪一个?( )(B) A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 3.线性表是具有n个( )的有限序列(n>0)。(C) A.表元素 B.字符 C.数据元素 D.数据项 E.信息项 .... 第三章栈和队列 一 选择题 1.对于栈操作数据的原则是( )。(B) A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序 2.在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为( ③ )。(B A B) 为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 ( ④)分别设在这片内存空间的两端,这样,当(⑤)时,才产生上溢。 (D C) ①, ②: A. 空 B. 满 C. 上溢 D. 下溢 ③: A. n-1 B. n C. n+1 D. n/2 ④: A. 长度 B. 深度 C. 栈顶 D. 栈底 ⑤: A. 两个栈的栈顶同时到达栈空间的中心点. B. 其中一个栈的栈顶到达栈空间的中心点. C. 两个栈的栈顶在栈空间的某一位置相遇. D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底. ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值