package frame.tag;
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;//当前执行次数
public int getCountNum() {
return countNum;
}
public void setCountNum(int countNum) {
this.countNum = countNum;
this.currentNum = 1 ;
}
//----标签开始时调用此方法-------
@Override
public int doStartTag() throws JspException {
try{
JspWriter out = pageContext.getOut() ;
out.print("<font color=\"red\">标签开始了:</font><br>") ;
if(countNum>0)
return EVAL_BODY_INCLUDE ;
else
return SKIP_BODY ;
}catch(Exception e){
return SKIP_BODY ;
}
}
//----标签体执行完后调用此方法----
@Override
public int doAfterBody() throws JspException {
try {
JspWriter out = pageContext.getOut() ;
out.print("第"+currentNum+"次执行标签体。标签体执行完毕!<br>") ;
if(countNum>1){
countNum-- ;
currentNum++ ;
return EVAL_BODY_BUFFERED ;
}else{
return SKIP_BODY ;
}
} catch (Exception e) {
return SKIP_BODY ;
}
}
//----标签结束时调用此方法-------
@Override
public int doEndTag() throws JspException {
try {
JspWriter out = pageContext.getOut() ;
//bodyContent.writeOut(bodyContent.getEnclosingWriter()) ;
//out.print("<br>标签体结束!") ;
out.write("<font color=\"red\">标签体循环完毕!标签结束!!!</font>") ;
} catch (Exception e) {
System.out.println(e);
}
return EVAL_PAGE ;
}
}
- 1
- 2
前往页