JSP嵌套子标签

在实际开发中,往往需要多个标签的嵌套以完成一个任务,这样标签就存在父子关系。类似于下面:

<mt:if value="false">

     <mt:out value="<%=outValue%>">

          这些内容会显示在客户端。

     </mt:out>

</mt:if>

在上面的标签中,<mt:switch>为父标签,<mt:case>为子标签,一个父标签可以嵌套多个子标签和HTML,Scriptlets等。

下面就来写一个这样的标签

ifTag.java

public class IfTag extends BodyTagSupport{

    private boolean value;

   

    public void setValue(boolean value){

        this.value=value;

    }

 

    public int doStartTag() throws JspTagException{

        if(value){

           System.out.println("value is true");

           return EVAL_BODY_INCLUDE;

         }  else{

           System.out.println("value is false");

            return SKIP_BODY;

         }

      }

        

    public int doEndTag() throws JspTagException {

        try { 

             if(bodyContent != null)  {

                 bodyContent.writeOut(bodyContent.getEnclosingWriter());

             }

        } catch(java.io.IOException e){

            throw new JspTagException("IO Error: " + e.getMessage()); 

        }  

        return EVAL_PAGE; 

    }

     

}

ValueIfTag的属性。当为真时,那么就计算IfTagBody;如果为假,就忽略

 

因为IfTag标签中要嵌套了一个子标签,这个子标签用于输出一些信息到客户端。

下面的是IfTag中嵌套的子标签。

OutTag.java

 

public class OutTag extends TagSupport{

    private Object value;   

 

   public void setValue(Object value){

        this.value=value;

   }

  

   public int doStartTag() throws JspTagException {

        return EVAL_BODY_INCLUDE;

}

 

public int doEndTag()throws JspTagException{

        try{

            System.out.println(value);

            pageContext.getOut().write(value.toString());

            

        }catch(IOException ex){

            throw new JspTagException("Fatal error:hello tag conld not write to JSP out");

        }

        return EVAL_PAGE;

    }

     

}

OutTag就是一个简单的不带Body的标签,它主要向客户端输出一些信息。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值