博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义标签【包含标签体】
阅读量:6535 次
发布时间:2019-06-24

本文共 1824 字,大约阅读时间需要 6 分钟。

实际意义: 就是在页面中从3开始,循环输出 时间
 
package com.randy.tag; 


import java.io.IOException; 


import javax.servlet.jsp.JspException; 

import javax.servlet.jsp.JspWriter; 

import javax.servlet.jsp.tagext.BodyTagSupport; 


public 
class BodyTag 
extends BodyTagSupport { 


    

  
private 
int countNum =0;
//循环显示时间的次数 

  
private 
int currentNum =1;
//当前执行次数 

    

  @Override 

  
public 
int doAfterBody() 
throws JspException { 



    
try { 

      JspWriter out = pageContext.getOut(); 

      out.println(
"第"+currentNum+
"次执行标签体。标签体执行完毕。<br/>"); 

        

      
if(countNum >1){ 

        countNum--; 

        currentNum ++; 

        
return EVAL_BODY_TAG; 

      }
else

        
return SKIP_BODY; 

      } 

    } 
catch (IOException e) { 

      e.printStackTrace(); 

      
return SKIP_BODY; 

    } 

  } 


  @Override 

  
public 
int doEndTag() 
throws JspException { 

     

    
try { 

      JspWriter out = pageContext.getOut(); 

      bodyContent.writeOut(bodyContent.getEnclosingWriter());
//输出标签体的内容 

      out.println(
"标签结束了"); 

    } 
catch (IOException e) { 

      e.printStackTrace(); 

    } 

    
return EVAL_PAGE; 

  } 


  @Override 

  
public 
void doInitBody() 
throws JspException { 


    currentNum=3; 

    
super.doInitBody(); 

  } 


  @Override 

  
public 
int doStartTag() 
throws JspException { 

      
try { 

        JspWriter out = pageContext.getOut(); 

        out.println(
"标签开始了:<br/>"); 

         

        
if(countNum>0){ 

          
return EVAL_BODY_TAG; 

        }
else

          
return SKIP_BODY; 

        } 

      } 
catch (IOException e) { 

        e.printStackTrace(); 

        
return SKIP_BODY; 

      } 

     

  } 


  
public 
int getCountNum() { 

    
return countNum; 

  } 


  
public 
void setCountNum(
int countNum) { 

    
this.countNum = countNum; 

    
this.currentNum =1; 

  } 


    

    


 
 
tld
  <tag> 

    <description>含有标签体</description> 

    <name>bodyTag</name> 

    <tag-
class>com.randy.tag.BodyTag</tag-
class

    <body-content>JSP</body-content> 

     

    <attribute> 

      <name>countNum</name> 

      <required>
true</required> 

      <rtexprvalue>
true</rtexprvalue> 

    </attribute> 

  </tag>
 
注意JSP 的大写。 书上写的是小写,不对。
 
<myTag:bodyTag countNum=
"6"

  <%= 
new java.util.Date() %> 

</myTag:bodyTag>
本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/282615,如需转载请自行联系原作者
你可能感兴趣的文章
MongoDB 自己定义函数
查看>>
Summary Day30
查看>>
逆向输出回环数组
查看>>
自己动手,实现“你的名字”滤镜
查看>>
高清摄像头MIPI CSI2接口浅解【转】
查看>>
C# CancellationTokenSource和CancellationToken的实现
查看>>
PCIE BAR空间
查看>>
winform命名规范
查看>>
如何用数学课件制作工具画角平分线
查看>>
Linux chmod命令及权限含义
查看>>
jrtplib编译指南
查看>>
VS2015 中统计整个项目的代码行数
查看>>
Anaconda入门使用指南
查看>>
UWP控件与DataBind
查看>>
bash: php: command not found
查看>>
XVIII Open Cup named after E.V. Pankratiev. Eastern Grand Prix
查看>>
数据恢复软件如何换机使用?
查看>>
《高性能mysql》到手
查看>>
(转)关于如何学好游戏3D引擎编程的一些经验
查看>>
使用Kotlin为你的APP自定义一个统一的标题栏
查看>>