gpt4 book ai didi

liferay - 如何在 Liferay 的特定页面上找到添加的 portlet?

转载 作者:行者123 更新时间:2023-12-03 20:21:14 24 4
gpt4 key购买 nike

我如何才能找到在特定 Liferay 页面上添加了哪些 portlet?

例如:
我有三个页面:欢迎、维基和搜索。

现在所有这些页面都添加了 portlet,其中一些是可实例化的 portlet(如 Web 内容显示和 iframe portlet)。

现在我想以请求参数的形式向iframe-portlet传递一些信息在 Search page来自 Welcome page .

最佳答案

我找到了两种方法来做到这一点:

  • 如果您想在添加您的 portlet 的同一页面上找到 portlet,您可以使用 themeDisplay可用于您的 portlet 或 JSP 的对象:
    // 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();
  • 如果您想在某个不同的页面上找到 portlet,那么您应该知道三件事,即; friendly-url , groupId以及该页面是否为public-pageprivate-page的网站(或社区),所以这里是代码:
    // 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();
  • portletIdList包含 portletIds 及其 instanceIds。所以现在你可以从列表中过滤掉 iframe-portlet/search页面使用 com.liferay.portal.util.PortletKeys.IFRAME你会得到类似 48_INSTANCE_rPv9 的信息.

    关于liferay - 如何在 Liferay 的特定页面上找到添加的 portlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11827415/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com