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

时间:2015-10-13 13:40:43

标签: java jsp liferay

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

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

<%@ 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>

1 个答案:

答案 0 :(得分:1)

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

同样的原则适用,你可以忽略打开弹出窗口的代码。

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

  1. 您需要在第一个portlet中创建一个render-URL,并使用以下属性portletName="testPopup_WAR_testPopupportlet"testPopup_WAR_testPopupportlet替换为您的第二个portlet的ID。
  2. 在锚标记<a>中提供上述链接。
  3. 更改第二个portlet的<add-default-resource>true</add-default-resource>中的liferay-portlet.xml
  4. 如果不是liferay-portlet.xml中的更改,那么您应该在portlet.add.default.resource.check.whitelist中拥有该属性portal-ext.properties
  5. 如果您想学习Liferay Portlet开发,那么最好的方法是使用书籍Liferay in ActionPortlets in Action,或者从Liferay developer Network开始,然后{{3 }}

    希望这有助于。