邋遢居

          我的Java天堂

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

          這幾天在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 閱讀(1456) 評論(1)  編輯  收藏 所屬分類: Spring-Web

          Feedback

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


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


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 峨边| 西华县| 宁河县| 浦江县| 静乐县| 商河县| 诏安县| 长垣县| 花垣县| 金寨县| 闵行区| 根河市| 澄城县| 昭平县| 乌兰浩特市| 加查县| 安多县| 璧山县| 临汾市| 南乐县| 兴和县| 方城县| 鹿泉市| 星子县| 迭部县| 乡宁县| 濮阳市| 营山县| 达孜县| 石景山区| 桐乡市| 佛冈县| 新龙县| 陇川县| 永善县| 祁连县| 夹江县| 孟津县| 太湖县| 定兴县| 汕尾市|