這幾天在resin跑一個taglib(common-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記錄下來了。下面的話就是他的結論:
于同名
http://b0r0j0.blogbus.com/logs/4028462.html