LIFERAY 6.2-如何在renderURL中指定另一个Portlet

LIFERAY 6.2-如何在renderURL中指定另一个Portlet,url,liferay,portlet,Url,Liferay,Portlet,我很难使用“renderURL”。我创建了一个新的portlet,我们称之为“portlet a”,我的一个页面(它是一个简单的CRUD),当我测试直接访问我的portlet时,它工作得非常好 问题是,我试图使用我的页面,通过另一个Portlet访问它,让我们称它为“Portlet B”,这是一个复杂的问题,因为当我单击按钮“save”时,它不是在Portlet A的类MVCPortlet中搜索我的方法save(),而是在Portlet B的类MVCPortlet中搜索 现在在Portlet B

我很难使用“renderURL”。我创建了一个新的portlet,我们称之为“portlet a”,我的一个页面(它是一个简单的CRUD),当我测试直接访问我的portlet时,它工作得非常好

问题是,我试图使用我的页面,通过另一个Portlet访问它,让我们称它为“Portlet B”,这是一个复杂的问题,因为当我单击按钮“save”时,它不是在Portlet A的类MVCPortlet中搜索我的方法save(),而是在Portlet B的类MVCPortlet中搜索

现在在Portlet B,我使用“renderURL”调用Portlet A的页面,如下所示:


根据理解,您希望从PortletB创建PortletA的呈现URL。 请从下面的代码片段中尝试

LiferayPortletURL anotherPortletURL = PortletURLFactoryUtil.create(request,portletName, 
plid, PortletRequest.RENDER_PHASE);
其中
plid
可以从下面的代码中检索

  long plid= PortalUtil.getPlidFromPortletId(themeDisplay.getScopeGroupId(),isPrivateLayout, portletId);

首先:portlet不是包含一些JSP的文件夹。portlet可以调用其插件内的任何jsp(插件可以包含任意数量的portlet)

因此,您的search.jsp it不是属于Portlet B

在Portlet A中调用search.jsp时,活动Portlet通常都是Portlet A

实现所需功能的最简单方法是复制Portlet A的MVCPortlet中的save按钮调用的操作方法