2008-01-24
杀千刀的PortletPreferences
这几天忙的像个鬼一样,好久没有更新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不应该会出现这样的问题,所以说遇到这样的问题郁闷啊.
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不应该会出现这样的问题,所以说遇到这样的问题郁闷啊.
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 63286 次
- 性别:

- 来自: 湖北

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
很烦,想站在阳台上大声的 ...
引用我虽然很喜欢IT这个工作,但是发现自已现在越来越像白痴,好像除了程序啥也不会 ...
-- by dins2003 -
liferay5.0网站导入导出
用心看,或都有雅兴的话你也可以调试一下,就可以看得很清楚了,当然调试之前把默认值 ...
-- by Tyler_Zhou -
liferay5.0网站导入导出
这是生成主键的代码,先读一次这个表,找到当前主键值,加上一个COUNTER_IN ...
-- by Kisses99 -
很烦,想站在阳台上大声的 ...
引用如果我有不死邪神的力量,我会毫不犹豫的灭了这个世界 ......呵呵 引用 ...
-- by eccojap -
很烦,想站在阳台上大声的 ...
呵呵 工作狂哦
-- by isky






评论排行榜