从一个 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 内容:
- 您需要在您的第一个 portlet 中创建一个具有以下属性的呈现器-URL
portletName="testPopup_WAR_testPopupportlet"
将 testPopup_WAR_testPopupportlet
替换为您的第二个 portlet 的 ID。
- 在锚标记
<a>
中给出上述 link。
- 更改第二个 portlet
liferay-portlet.xml
中的 <add-default-resource>true</add-default-resource>
。
- 或者如果
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
。
希望对您有所帮助。
我使用 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 内容:
- 您需要在您的第一个 portlet 中创建一个具有以下属性的呈现器-URL
portletName="testPopup_WAR_testPopupportlet"
将testPopup_WAR_testPopupportlet
替换为您的第二个 portlet 的 ID。 - 在锚标记
<a>
中给出上述 link。 - 更改第二个 portlet
liferay-portlet.xml
中的<add-default-resource>true</add-default-resource>
。 - 或者如果
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
。
希望对您有所帮助。