JSP用BodyTagSupport做自定义标签的奇怪问题????
public class Mytag extends BodyTagSupport {
private int count = 5;
public int doStartTag() throws JspTagException {
System.out.print(count);
return EVAL_BODY_BUFFERED;
}
/* (non-Javadoc)
* @see javax.servlet.jsp.tagext.BodyTagSupport#doAfterBody()
*/
public int doAfterBody() throws
JspException {
// TODO Auto-generated method stub
if(count > 1)
{
System.out.print( "test ");
count--;
return EVAL_BODY_AGAIN;
}
else
{
return SKIP_BODY;
}
}
public int doEndTag() throws JspTagException {
return EVAL_PAGE;
}
}
第一次访问调用这个标签的JSP页,可以循环输出4个 "test " count的初值为5
可是刷新后发现...count的值还是从1开始.控制台无 "test "输出..为什么刷新后count没有重新实例化????
------解决方案--------------------你说对了,就是没有重新实例化,你要把count的值在doStartTag()中重新设置
------解决方案--------------------帮你顶!!!
我也遇到了同样的问题,发现TabLib对象的生命周期是application级别的,如何让它变成page级别呢?