taglib自定义标签的问题:发现在同一jsp中两个表签在共用一个标签处理类对象

homesong 2006-03-15 01:30:22
自己写了一个自定义标签的处理类testTag
public class testTag extends TagSupport
{
private String test1="test1";
private String test2="test2";
private String common="common";

public int doEndTag() throws JspException
{
System.out.println(test1);
System.out.println(test2);

common+=test1+test2;
System.out.println(common);
System.out.println("-------");
return super.doEndTag();
}
.......
}
在同一jsp页面中使用两个该标签,发现这两个表签在共用一个对象,如下
<xx:test test1="a1" test2="a2" />
<xx:test test1="b1" test2="b2"/>

结果如下:
a1
a2
commona1a2
-------
b1
b2
commona1a2b1b2

本以为第二个test标签的common应该=commonb1b2,但是运行结果发现在第二个test标签中的common变量是在第一个test标签的common值“commona1a2”的基础上加"b1b2"得到,也就是说两个标签在共用一个标签处理类对象。

有没办法使每个test标签保持它自己的状态??????
...全文
139 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHARGING 2006-03-15
  • 打赏
  • 举报
回复
JSP容器一般会缓存taglib的reference,所有调用同一个taglib的JSP均共享此reference。
homesong 2006-03-15
  • 打赏
  • 举报
回复
有没什么方法是每次遇到标签就重新构造标签处理类对象的。
polarman 2006-03-15
  • 打赏
  • 举报
回复
你可以在doStartTag里做初始化
之所以用一个对象,主要应该是效率的问题,而且并不需要每个标签是不同的对象
doway 2006-03-15
  • 打赏
  • 举报
回复
mark
homesong 2006-03-15
  • 打赏
  • 举报
回复
ding!!!!!!!!!!!!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧