邋遢居

          我的Java天堂

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

          這幾天在resin跑一個(gè)taglibcommon-controls http://www.common-controls.com/en/index.php)庫(kù)。發(fā)現(xiàn)很多東西不能用。下圖中的菜單全部變成了“logout”。其他的全部沒(méi)有了。


          這個(gè)頁(yè)面在tomcat下跑起來(lái)的效果是:

          怎么會(huì)是這樣。看上去是不是很奇怪啊。

          后來(lái)查看了一下cc-samples\WEB-INF\work\_jsp\_jsp\_template下的_header__jsp.java

          發(fā)現(xiàn)

          com.cc.framework.taglib.menu.MenuItemTag這個(gè)類只被創(chuàng)建了一次。而且在重復(fù)使用。

          if (_jsp_MenuItemTag_3 == null) {

                  _jsp_MenuItemTag_3 = new com.cc.framework.taglib.menu.MenuItemTag();

                  _jsp_MenuItemTag_3.setPageContext(pageContext);

                  _jsp_MenuItemTag_3.setParent((javax.servlet.jsp.tagext.Tag) _jsp_MenuTag_2);

          }

          于是我就在猜想啊向com.cc.framework.taglib.menu.MenuTag這個(gè)類的實(shí)例中添加了那么多MenuItem肯定就只加了這么一個(gè)實(shí)例了。所以在最后顯示的只顯示出最后設(shè)置的參數(shù)了。

           

          最后查看有一個(gè)仁兄也遭遇了類是的情況。也用blog記錄下來(lái)了。下面的話就是他的結(jié)論:

          于同名標(biāo)簽,引用10,Tomcat就會(huì)創(chuàng)建10個(gè)方法和標(biāo)簽對(duì)象來(lái)做對(duì)應(yīng)的處理。而Resin只會(huì)創(chuàng)建1個(gè)對(duì)應(yīng)的標(biāo)簽實(shí)例,如果后面再 引用,則不會(huì)創(chuàng)建新的,只操縱唯一的一個(gè)實(shí)例。所以在標(biāo)簽的邏輯處理中,要注意屬性釋放和還原的情況。我犯的錯(cuò)誤就是因?yàn)槠渲械囊粋€(gè)屬性一直保存在該實(shí)例 中并沒(méi)有銷毀,導(dǎo)致后面再處理的時(shí)候發(fā)生沖突。

           

          http://b0r0j0.blogbus.com/logs/4028462.html


          posted on 2007-04-05 16:36 Jet Geng 閱讀(1456) 評(píng)論(1)  編輯  收藏 所屬分類: Spring-Web

          Feedback

          # re: Taglib 遭遇Resin[未登錄](méi) 2007-04-05 17:24 Feng
          很有價(jià)值的實(shí)際經(jīng)驗(yàn)  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宜黄县| 噶尔县| 桂东县| 诏安县| 云梦县| 浦江县| 鄢陵县| 名山县| 鲁甸县| 罗平县| 曲松县| 新龙县| 信丰县| 湖州市| 广平县| 衡南县| 安陆市| 文成县| 丘北县| 缙云县| 西乡县| 蒙城县| 马山县| 历史| 青岛市| 河间市| 修文县| 桃园县| 鄂尔多斯市| 陇西县| 许昌县| 临夏县| 贵南县| 墨江| 扬中市| 陆丰市| 阳春市| 兴化市| 任丘市| 罗甸县| 建瓯市|