从一个 Liferay 插件项目调用另一个 Liferay 插件项目

From one Liferay Plugin project invoking a another Liferay Plugin Project

我使用 Liferay portlet bundle 6.2 (Tomcat) 和 Liferay IDE(eclipse)。我创建了一个 Liferay 插件项目。我在此项目中使用 Portlet 首选项保存了一些数据,并创建了一个按钮调用 "Search"。我的问题是,当我按下第一个 Liferay 插件项目中创建的按钮 "Search" 时,如何调用另一个 Liferay 插件项目?稍后我将从第二个 Liferay 插件项目中检索我在第一个项目中保存的数据。

接下来是 search.jsp,我在其中创建了按钮搜索

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://alloy.liferay.com/tld/aui" prefix="aui" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

<portlet:defineObjects />


<aui:button-row cssClass="guestbook-buttons">

<portlet:renderURL var="addEntryURL">
    <portlet:param name="mvcPath" value="/html/voda/edit_entry.jsp"></portlet:param>
</portlet:renderURL>

<aui:button onClick="<%= addEntryURL.toString() %>" value="Add Entry"></aui:button>

<portlet:renderURL var="showURL">
<portlet:param name="mvcPath" value="/html/voda/show_entries.jsp"></portlet:param>
</portlet:renderURL>

<aui:button onClick="<%= showURL.toString() %>" value="Show"></aui:button>

   <portlet:renderURL var="searchURL">
<portlet:param name="mvcPath" value="/html/voda/search.jsp"></portlet:param>
</portlet:renderURL>

<aui:button onClick="<%= searchURL.toString() %>" value="Search"></aui:button>

您可以参考 this SO answer,其中显示了如何在弹出窗口中从第一个 portlet 打开第二个 portlet。

同理,弹窗开启代码可以忽略

以下是答案的要点(答案中提供了详细信息),您应该考虑并忽略其他 javascript 内容:

  1. 您需要在您的第一个 portlet 中创建一个具有以下属性的呈现器-URL portletName="testPopup_WAR_testPopupportlet"testPopup_WAR_testPopupportlet 替换为您的第二个 portlet 的 ID。
  2. 在锚标记 <a> 中给出上述 link。
  3. 更改第二个 portlet liferay-portlet.xml 中的 <add-default-resource>true</add-default-resource>
  4. 或者如果 liferay-portlet.xml 中没有变化,那么您应该在 portal-ext.properties 中得到 属性 portlet.add.default.resource.check.whitelist

如果您想学习 Liferay Portlet 开发,那么最好的开始方式是阅读本书 Liferay in Action and Portlets in Action or else start with the new tutorials on Liferay developer Network and then Liferay Developer Guide

希望对您有所帮助。