Liferay 7.2 渲染带有实例的 portlet 的 url
Posted
技术标签:
【中文标题】Liferay 7.2 渲染带有实例的 portlet 的 url【英文标题】:Liferay 7.2 render url of a portlet with instance 【发布时间】:2021-02-03 02:10:30 【问题描述】:我有 Liferay 7.2。
用于自定义 portlet 视图的 Jsp 文件。
我正在尝试从自定义 portlet 生成一个 url,以链接 文档媒体 portlet (com_liferay_document_library_web_portlet_DLPortlet)。
我试试
<liferay-portlet:actionURL name="newMyNew" portletName="com_liferay_document_library_web_portlet_DLPortlet" var="prueba2"></liferay-portlet:actionURL>
输出:
http://localhost:8080/web/guest/home?p_p_id=com_liferay_document_library_web_portlet_DLPortlet&p_p_lifecycle=1&p_p_state=normal&p_p_mode=view&_com_liferay_document_library_web_portlet_DLPortlet_javax.portlet.action=newMyNew&p_auth=1IDKtzvU
但我需要 Document Media portlet (com_liferay_document_library_web_portlet_DLPortlet) 的实例 ID,因为我需要它接收诸如 folderId 之类的变量
我需要这个输出:
http://localhost:8080/web/guest/home/-/document_library/jFOlAlmeJgMl/view/34527?_com_liferay_document_library_web_portlet_DLPortlet_INSTANCE_jFOlAlmeJgMl_redirect=http%3A%2F%2Flocalhost%3A8080%2Fweb%2Fguest%2Fhome%3Fp_p_id%3Dcom_liferay_document_library_web_portlet_DLPortlet_INSTANCE_jFOlAlmeJgMl%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview
我该怎么做?
【问题讨论】:
【参考方案1】:我找到了获取portlet实例id的解决方案
List<Portlet> portletListDUE = layoutTypePortlet.getAllPortlets();
String portletInstanceId = "";
for(Portlet portletIn : portletListDUE)
String portletNameOfInstance = portletIn.getPortletName();
if(portletNameOfInstance.equals("com_liferay_document_library_web_portlet_DLPortlet"))
portletInstanceId = portletIn.getInstanceId();
【讨论】:
以上是关于Liferay 7.2 渲染带有实例的 portlet 的 url的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式获取在 Liferay 7.2 中部署的 Portlet 列表
我如何在 liferay 7.3.6 中将(用户和组织)作为 portlet