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标签保持它自己的状态??????
...全文
97 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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!!!!!!!!!!!!
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-03-15 01:30
社区公告
暂无公告