Configuration 在Liferay中设置和获取Portlet ID

Configuration 在Liferay中设置和获取Portlet ID,configuration,liferay,portlet,Configuration,Liferay,Portlet,我使用IPC与多个Portlet通信。 因此,我们有一个通用管理portlet,它具有配置属性,将存储在portlet首选项中 如果我想在任何其他portlet中获取特定portlet的portlet首选项,我应该知道它的ID 那么,我如何手动设置我的portlet的portlet ID,如何在代码中获得它?当您谈论“一个特定的其他portlet”时,您似乎已经知道要访问的portlet,因此应该可以访问它的ID。。。或者,换句话说,我不确定您想要实现什么,或者您的UniversalAdminP

我使用IPC与多个Portlet通信。 因此,我们有一个通用管理portlet,它具有配置属性,将存储在portlet首选项中

如果我想在任何其他portlet中获取特定portlet的portlet首选项,我应该知道它的ID

那么,我如何手动设置我的portlet的portlet ID,如何在代码中获得它?

当您谈论“一个特定的其他portlet”时,您似乎已经知道要访问的portlet,因此应该可以访问它的ID。。。或者,换句话说,我不确定您想要实现什么,或者您的UniversalAdminPortlet将如何访问这些信息

基本上,Liferay的API允许您访问可以在Liferay中创建的不同站点,例如as(一个站点的技术名称为“组”)。Liferay中的页面称为布局,站点/组最多由两个布局集(公共页面和私人页面)组成。通过这些布局,您可以访问其中包含的portlet。只需在上查看完整的API。对Liferay有一些基本的了解有助于了解如何使用API

编辑:正如您所说,您希望自己生成portlet id。您将非常清楚为什么要这样做——我建议您研究一下好的旧sevencogs示例代码。不幸的是,它已经停产了(您可以在旧的源代码版本中找到),但James Falkner已经停产了。您特别想看看“将Portlet添加到布局(页面)”和“将资源添加到布局”这两个段落,但其余部分也很有趣


简言之:Liferay依赖于此ID的某些元素是可复制的-对于不可实例化的Portlet,您没有选择,并且ID是完全预先确定的。对于可实例化Portlet,这个预先确定的ID后面跟着“INSTANCE”和一些随机字符。正如我上面所说的:我不清楚当您自己运行随机数生成器而不是依赖现有的机制时,您会得到什么,但是您会更清楚您想要实现什么。

我没有想到更改portlet id的方法


虽然如果您想在每个portlet中定义您的特定id,您可以使用portlet.xml的portle name标记来设置伪id。通过这种方式,您可以使用此标记作为引用每个portlet的唯一id。

要获取portlet id:-com.liferay.portal.util.PortalUtil.getPortal().getPortletId(request)@LuckyBoy,我想设置并获取它。如果我不能访问其他portlet的代码该怎么办。请把问题再读一遍。我想访问其他一些portlet配置,而不是我的portlet。简单地说,我如何为任何portlet分配portletID,而不是允许Liferay生成。