bodytag.java

来自「张新曼 精通JSP Web 开发技术与典型应用 随书光盘源码」· Java 代码 · 共 91 行

JAVA
91
字号
package ch10;

import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class BodyTag extends BodyTagSupport
{
	/**
	 * 添加缺省串行版本标识
	 */
	private static final long serialVersionUID = 1L;
	int counts;//counts为迭代的次数。
	public BodyTag()
	{
		super();
	}
	
	/**
	 *设置counts属性。这个方法由容器自动调用。
	 */
	public void setCounts(int c)
	{
		this.counts=c;
	}
	
	/**
	 *覆盖doStartTag方法
	 */
	 public int doStartTag() throws JspTagException  
	 {   
	     System.out.println("doStartTag");
	     if(counts>0) 
	     { 
	         return EVAL_BODY_TAG;
	     } 
	     else 
	     { 
	          return SKIP_BODY;
	     } 
    }
    
    /**
     *覆盖doAfterBody方法
     */
    public int doAfterBody() throws JspTagException 
    { 
        System.out.println("doAfterBody"+counts);
        if(counts>1)
        {
        	counts--;
        	return EVAL_BODY_TAG; 
         }  
         else
         { 
            return SKIP_BODY; 
         } 
    }
    
   /**
     *覆盖doEndTag方法
     */
    public int doEndTag() throws JspTagException 
    {
         System.out.println("doEndTag");
        try 
        {  
             if(bodyContent != null)  
             {
             	bodyContent.writeOut(bodyContent.getEnclosingWriter()); 
             }
        } 
        catch(java.io.IOException e)
        {
        	throw new JspTagException("IO Error: " + e.getMessage());  
        }   
        return EVAL_PAGE;  
    }
    
     public void doInitBody() throws JspTagException{
      System.out.println("doInitBody");
     }
     public void setBodyContent(BodyContent bodyContent) 
     {   
          System.out.println("setBodyContent");
          this.bodyContent=bodyContent; 
          
     }
        
        
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?