我开发了一个Liferay portlet,它具有每个布局唯一的首选项:首选项特定于每个portlet窗口,用户可以通过“Preferences”选项(编辑模式)修改它们。
在liferay-portlet.xml中:
<preferences-unique-per-layout>true</preferences-unique-per-layout>
但是我想添加一个配置页面,以便管理应该在所有portlet窗口之间共享的全局参数。目前这些参数在portlet.xml中作为“init-param”处理,但不是很方便,管理员用户应该能够通过门户网站UI更改这些参数。
我按照here描述的方法创建了这样的页面,它适用于当前的portlet窗口,但不共享首选项。是否可以针对某些偏好使用特定范围?这个other wiki使用了一个指定“uniquePerLayout”和“uniquePerGroup”的方法,但我没有在5.2.3到6.2的API中找到这个方法
public static PortletPreferences getPortletSetup(
ActionRequest req,
String portletId,
boolean uniquePerLayout,
boolean uniquePerGroup)
请有人在这个问题上启发我吗?
谢谢!
答案 0 :(得分:1)
在6.2中,有getPortletSetup方法接受布局和组,
PortletPreferencesFactoryUtil.getPortletSetup(scopeGroupId,layout, portletId,defaultPreferences)。
您可以从themeDisplay获取scopeGroupId,layout如下所示,以及portletId&amp; defaultPreferences应根据您的要求设置。
ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); Layout layout = LayoutLocalServiceUtil.getLayout(themeDisplay.getPlid());