zoukankan      html  css  js  c++  java
  • JSP 传统标签extends TagSupport

    1.控制JSP页面某一部分内容是否执行

    public int doStartTag()

    返回EVAL_BODY_INCLUDE,执行

    返回SKIP_BODY,不执行

    2.控制整个JSP页面是否执行

    public int doEndTag()

    返回EVAL_PAGE,执行

    返回SKIP_PAGE,不执行

    3.控制JSP页面内容重复执行

     1 package cn.itcast.web.tag;
     2 
     3 import javax.servlet.jsp.JspException;
     4 import javax.servlet.jsp.tagext.IterationTag;
     5 import javax.servlet.jsp.tagext.Tag;
     6 import javax.servlet.jsp.tagext.TagSupport;
     7 
     8 //控制标签体重复执行
     9 public class TagDemo3 extends TagSupport {
    10 
    11     int x = 5;
    12 
    13     @Override
    14     public int doStartTag() throws JspException {
    15         return Tag.EVAL_BODY_INCLUDE;
    16     }
    17 
    18     @Override
    19     public int doAfterBody() throws JspException {
    20         x--;
    21         if (x > 0) {
    22             return IterationTag.EVAL_BODY_AGAIN;
    23         } else {
    24             return IterationTag.SKIP_BODY;
    25         }
    26     }
    27 
    28 }

    4.修改JSP页面内容输出

     1 package cn.itcast.web.tag;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.jsp.JspException;
     6 import javax.servlet.jsp.tagext.BodyTagSupport;
     7 import javax.servlet.jsp.tagext.Tag;
     8 
     9 public class TagDemo4 extends BodyTagSupport {
    10 
    11     @Override
    12     public int doEndTag() throws JspException {
    13         // TODO Auto-generated method stub
    14 
    15         String content = this.getBodyContent().getString();
    16 
    17         String result = content.toUpperCase();
    18 
    19         try {
    20             this.pageContext.getOut().write(result);
    21         } catch (IOException e) {
    22             // TODO Auto-generated catch block
    23             e.printStackTrace();
    24         }
    25 
    26         return Tag.EVAL_PAGE;
    27     }
    28 
    29     @Override
    30     public int doStartTag() throws JspException {
    31         // TODO Auto-generated method stub
    32         return BodyTagSupport.EVAL_BODY_BUFFERED;
    33     }
    34 
    35 }
  • 相关阅读:
    怎么快速掌握一门新技术
    Linq相关
    C# 参数按照ASCII码从小到大排序(字典序)
    测试工具
    sql 创建临时表
    sql行合并
    WCF相关
    免费开源分布式系统日志收集框架 Exceptionless
    VPS,虚拟主机,云主机,独立服务器区别
    c# Dictionary的遍历和排序
  • 原文地址:https://www.cnblogs.com/denggelin/p/8159367.html
Copyright © 2011-2022 走看看