如何在Liferay中查找添加在特定页面上的portlet?
如何找到在特定Liferay页面上添加的portlet 例如:如何在Liferay中查找添加在特定页面上的portlet?,liferay,liferay-6,portlet,Liferay,Liferay 6,Portlet,如何找到在特定Liferay页面上添加的portlet 例如: 我有三个页面:欢迎,维基和搜索 现在,所有这些页面都添加了portlet,其中一些是可实例化的portlet(如web内容显示和iframe portlet) 现在,我想以请求参数的形式将一些信息从欢迎页面传递到搜索页面上的iframe portlet,我找到了两种方法: 如果希望在添加portlet的同一页面上找到portlet,则可以使用portlet或JSP可用的主题显示对象: // In JSP List<String
我有三个页面:欢迎,维基和搜索 现在,所有这些页面都添加了portlet,其中一些是可实例化的portlet(如web内容显示和iframe portlet)
现在,我想以请求参数的形式将一些信息从
欢迎页面
传递到搜索页面
上的iframe portlet
,我找到了两种方法:
主题显示
对象:
// In JSP
List<String> portletIdList = themeDisplay.getLayoutTypePortlet().getPortletIds();
// In portlet class
ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);
List<String> portletIdList = themeDisplay.getLayoutTypePortlet().getPortletIds();
portletIdList
包含完整的portletIds及其instanceId。因此,现在从列表中,您可以使用com.liferay.portal.util.PortletKeys.iframe
在/search
页面上筛选出iframe portlet
,您将得到类似于48_INSTANCE\u rPv9的东西,这些年来仍然很有用:-)我一直在用编程的方法进行Primefaces“更新”对于完整的portlet组件ID,现在使用…getPortletDisplay().getNamespace()+。。。
// 101543 is the SiteId, if it is a public-page then "false" and "/search" is the friendlyURL
LayoutTypePortlet layoutTypePortlet = LayoutTypePortletFactoryUtil.create(LayoutLocalServiceUtil.getFriendlyURLLayout(101543, false, "/search"));
List<String> portletIdList = layoutTypePortlet.getPortletIds();