传统自定义标签(3)-应用自定义标签的五种功能

自定义标签除了去除Java代码之外还有以下四个用处:
    *控制jsp页面某一部分内容是否执行。
    *控制整个jsp页面是否执行。
    *控制jsp页面内容重复执行。
    *修改j页面内容输出

<meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">  
*控制jsp页面某一部分内容是否执行:
    @Override
    public int doStartTag() throws JspException {
        //return Tag.SKIP_BODY;则不会执行标签体中的内容
        return Tag.EVAL_BODY_INCLUDE;
    }

*控制整个jsp页面是否执行。
    @Override
    public int doEndTag() throws JspException {
        //return Tag.EVAL_PAGE;//显示自定义标签后边的内容
        return Tag.SKIP_PAGE;
    }

*控制jsp页面内容重复执行。
    public class Demo4 extends TagSupport {
        private int n=5;
        @Override
        public int doStartTag() throws JspException {
            return Tag.EVAL_BODY_INCLUDE;
        }
        //这个方法在标签开始之后执行,在结束标签之后执行
            @Override
            public int doAfterBody() throws JspException{
                n--;
                if(n>0){
                    //如果返回IterationTag.EVAL_BODY_AGAIN,则服务器会继续调用这个方法
                return IterationTag.EVAL_BODY_AGAIN;
                }
                else
                    return IterationTag.SKIP_BODY;//停止调用这个方法
                
            }
    }    
    
    
*修改j页面内容输出    
        
    //将标签题改为大写
    public class Demo5 extends BodyTagSupport {
        @Override
        public int doStartTag() throws JspException {
            //将标签题封装到对象中:BodyContent
            return BodyTagSupport.EVAL_BODY_BUFFERED;
        }
        @Override
        public int doEndTag() throws JspException {
            BodyContent bc=this.getBodyContent();
            String content=bc.getString();
            content=content.toUpperCase();
            try {
                pageContext.getOut().write(content);
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
            return Tag.EVAL_PAGE;
        }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值