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 中呈现自定义表单字段

Liferay DXP 7.2 监听器无法启动(干净版)

以编程方式获取在 Liferay 7.2 中部署的 Portlet 列表

我如何在 liferay 7.3.6 中将(用户和组织)作为 portlet

如何在 mvc-portlet 中使用 slf4j 记录器而不是内置 Liferay DXP 7.2 记录器?

Liferay 相同的操作和渲染方法的友好 url