日期:2014-05-18  浏览次数:20548 次

怎样判断jsp自定义标签是jsp页面中的第一个该名称的自定义标签?
在jsp页面中有二个相同的自定义标签(有联动功能的绑定数据源的选择框标签):
<a:select   id= "department "   dataSource= "departmentList "   fills= "employee "   synchronizeds= "department2 ">
  <a:option   label= "name "   value= "id "/>
  </a:select>

<a:select   id= "department2 "   dataSource= "departmentList "   fills= "employee2 ">
  <a:option   label= "name "   value= "id "/>
  </a:select>

每一个标签都要向页面中打印一个数据(这个数据很大,用来自动更新选择框,比如说是所有的部门信息),在我的第二个标签中我要判断是否已经打印过这个数据,如果打印过了就不再打印了,以免浪费,所以我用了一个Hashtable来保存打印的数据的名称,每个标签在打印之前都要去检查一下Hashtable中是否已经有了这个数据的名称,如果有就不打印,没有就打印.
这样一来的话那位于页面中的第一个标签就应该将Hashtable清空才行,不然的话每刷新一次页面Hashtable中的内容就会不断增加.但是我不知道怎样才能判断出哪一个标签是JSP页面中的第一个?

有一种解决办法是为标签提供一个属性,比如:
<a:select   init= "true "   ...
让用户来决定是否初始化,但这样的话显得不很好用,非常不智能.不知道有没有什么好的办法?

------解决方案--------------------
关键问题就是下面这两个标签之间能不能相互通信?
<a:select id= "department " dataSource= "departmentList " fills= "employee " >
<a:option label= "name " value= "id "/>
</a:select>

<a:select id= "department2 " dataSource= "departmentList " fills= "employee2 ">
<a:option label= "name " value= "id "/>
</a:select>