论坛首页 Java企业应用论坛

杀千刀的PortletPreferences

浏览 3223 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-24  
这几天忙的像个鬼一样,好久没有更新blogs了,今天遇到了一个问题想骂娘,所以写出来希望大家遇到这样的问题有点帮助,开发portlet一般init.jsp一般都有:
PortletPreferences prefs = renderRequest.getPreferences();

String portletResource = ParamUtil.getString(request, "portletResource");


if (Validator.isNotNull(portletResource)) {
prefs = PortletPreferencesFactoryUtil.getPortletSetup(request, portletResource, true, true);
}
然后在view.jsp和configuration.jsp中都include这个init.jsp,在配置页面打开后修改了配置,然后在ConfigurationAction中处理,processAction中
PortletPreferences prefs =
PortletPreferencesFactoryUtil.getPortletSetup(
req, portletResource, true, true);或者在renderAction中res.getPreferences()也可以得到,偶遇到的问题就是,同样的init.jsp在配置页和view取得值居然不一样,而且各不相干,好像是两个portlet一样,以前也写了不少,没有出现过这样的问题,仔细查了Portletpreferences的类型,取得的方法,对了又对也没发现问题出在那里,然后又到了数据库找到了这几条数据,果然他们取得是两个不同的数据,不停的找,郁闷啊,一下午过去了,后来终于发现portletResource这什值,居然是"",无语了,死活也想不明白为什么在view的时候这个值是空,这个值也没有看到liferay是在那里放到request中去的,本身现在对lifery 整个的运行机制也不是很清,没办法啊,为了解决问题后来只好在init.jsp中取的方法也改成portletResource = portletDisplay.getId();就可以了,虽然解决了问题,可是心理还是不爽,问题的根本原因还是没有找到.


开发lifery这个东西,有时候不能太相信自已,我就遇到过,比如说清一下缓存,重启一下服务,登陆和注销后再看一下(PortalUtil.getPortletGroupId(request))这个方法有时候在登陆状态和注销状态取得的值都是不一样的,照道理同一个portlet不应该会出现这样的问题,所以说遇到这样的问题郁闷啊.
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics