邋遢居

          我的Java天堂

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            61 Posts :: 2 Stories :: 90 Comments :: 0 Trackbacks

          公告

          啟航吧,我親愛的Jet!

          常用鏈接

          留言簿(18)

          我參與的團隊

          搜索

          •  

          積分與排名

          • 積分 - 151070
          • 排名 - 409

          最新評論

          閱讀排行榜

          評論排行榜

          這幾天在resin跑一個taglibcommon-controls http://www.common-controls.com/en/index.php)庫。發現很多東西不能用。下圖中的菜單全部變成了“logout”。其他的全部沒有了。


          這個頁面在tomcat下跑起來的效果是:

          怎么會是這樣。看上去是不是很奇怪啊。

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

          發現

          com.cc.framework.taglib.menu.MenuItemTag這個類只被創建了一次。而且在重復使用。

          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這個類的實例中添加了那么多MenuItem肯定就只加了這么一個實例了。所以在最后顯示的只顯示出最后設置的參數了。

           

          最后查看有一個仁兄也遭遇了類是的情況。也用blog記錄下來了。下面的話就是他的結論:

          于同名標簽,引用10,Tomcat就會創建10個方法和標簽對象來做對應的處理。而Resin只會創建1個對應的標簽實例,如果后面再 引用,則不會創建新的,只操縱唯一的一個實例。所以在標簽的邏輯處理中,要注意屬性釋放和還原的情況。我犯的錯誤就是因為其中的一個屬性一直保存在該實例 中并沒有銷毀,導致后面再處理的時候發生沖突。

           

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


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

          Feedback

          # re: Taglib 遭遇Resin[未登錄] 2007-04-05 17:24 Feng
          很有價值的實際經驗  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 保德县| 长兴县| 克山县| 中宁县| 琼海市| 兰考县| 拜城县| 本溪市| 永济市| 惠来县| 磐安县| 玉树县| 巴里| 西青区| 五常市| 怀来县| 平潭县| 威海市| 葫芦岛市| 麻城市| 蓬莱市| 原平市| 灌阳县| 古田县| 张家口市| 黔东| 错那县| 定南县| 南郑县| 莲花县| 梁河县| 潞城市| 界首市| 新余市| 乳山市| 津市市| 康保县| 根河市| 四会市| 南乐县| 蕲春县|