最近使用JAVA、MyEclipse、Weblogic来开发Web程序,使用JSCookMenu来定义项目中用到的menu。

当在WEB-INF文件夹下添加了weblogic.xml文件以后,一些属性发生了变化,如:
接下来出现的问题之一就是menu上面的图片无法正确显示。
接下来出现的问题之一就是menu上面的图片无法正确显示。通过使用Internet Explorer Developer Toolbar软件,
我找到了无法显示的图片的链接是:http://domain/Web/faces/myFacesExtensionResource/
org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/12115203/
navmenu.jscookmenu.HtmlJSCookMenuRenderer/ThemeOffice/;imssesessionid=QzxsL2rS!1070634751spacer.gif
在tomahawk-1.1.5.jar包中可以找到这个文件:
org\apache\myfaces\custom\navmenu\jscookmenu\resource\ThemeIE\theme.js
在这个文件中使用如下方法来解析图片的路径:// sub menu display attributes
if(cmThemeOfficeBase.indexOf("/;j")>-1){
myPrefix=cmThemeOfficeBase.substring(0,cmThemeOfficeBase.indexOf("/;j")) + "/";
mySuffix=cmThemeOfficeBase.substring(cmThemeOfficeBase.indexOf("/;j")+1);}
var myFolderLeft=myPrefix + 'spacer.gif' + mySuffix; var myFolderRight=myPrefix + 'arrow.gif' + mySuffix;
代码中查找/:j这个字符串来分开图片路径和sessionid,所以我们可以知道weblogic.xml文件中的CookieName是很重要的,必须以字母j开头。而正确的图片路径应该是: http://domain/Web/faces/myFacesExtensionResource/org.apache.myfaces.renderkit.html.util.MyFacesResourceLoader/12115455/navmenu.jscookmenu.HtmlJSCookMenuRenderer/ThemeOffice/spacer.gif;jimssesessionid=GknnL23T!-527814332 我们可以想象,CookieName以字母j开头是通用的方法,所以只要修改CookieName即可解决这个问题。
发表于 @ 2008年06月11日 13:51:00 | 评论( loading... ) | 举报| 收藏