【发布时间】:2014-05-28 17:02:51
【问题描述】:
我正在使用 liferay 6.1、jsf 2 和 primeface 4.0。我在 liferay tomcat 上运行了两个不同的项目。我想将“项目 1”的 portlet 插入“项目 2”的 primefaces 对话框中。
我尝试使用 ui:insert,但它采用当前项目的源路径。在这种情况下如何进行?
【问题讨论】:
标签: jsf-2 primefaces liferay liferay-6
我正在使用 liferay 6.1、jsf 2 和 primeface 4.0。我在 liferay tomcat 上运行了两个不同的项目。我想将“项目 1”的 portlet 插入“项目 2”的 primefaces 对话框中。
我尝试使用 ui:insert,但它采用当前项目的源路径。在这种情况下如何进行?
【问题讨论】:
标签: jsf-2 primefaces liferay liferay-6
使用 ui:insert,您可以插入 html 代码,而不是整个 portlet! 所以你应该:
【讨论】:
我设法解决了这个问题。
Liferay 提供了每个 portlet 的生成 URL 功能。所以我为目标 portlet 创建了一个 URL。
然后将该网址传递给 liferay 弹出窗口。
这是我的代码:
<script type="text/javascript" charset="utf-8">
var url;
function createRenderURL() {
AUI().ready('liferay-portlet-url', function(A) {
var renderURL = Liferay.PortletURL.createRenderURL();
renderURL.setName("Banner");
renderURL .setPortletMode("view");
renderURL .setWindowState("pop_up");
renderURL.setPortletId("addUser_WAR_UserManagementportlet");
url = renderURL.toString();
showPopup(url);
});
}
function showPopup(url){
console.log("En el showPopup ");
AUI().ready('aui-dialog', 'aui-io', function(A) {
alert(url);
window.myDialog = new A.Dialog({
title: 'Banner',
width: 640,
centered: true
}).plug(A.Plugin.IO, {
uri: url
}).render();
});
}
希望对他人有所帮助。谢谢。
【讨论】: