将Liferay portlet插入PrimeFaces对话框

时间:2014-04-14 16:20:28

标签: jsf-2 primefaces liferay liferay-6

我正在使用liferay 6.1,jsf 2和primeface 4.0。我在liferay tomcat上运行了两个不同的项目。我想在“项目2”的primefaces对话框中插入一个“Project 1”的portlet。

我尝试使用ui:insert,但它需要当前项目的源路径。如何在这种情况下继续?

2 个答案:

答案 0 :(得分:1)

用ui:insert插入,你可以插入html代码,而不是整个portlet! 所以你应该:

  1. 创建一个可从两个portlet中看到的公共xhtml页面。这将要求您在同一个插件项目中同时拥有两个portlet
  2. 在对话框中,您可以添加指向门户网站另一个页面的链接,而不是插入代码,其中包含" project2" portlet已放置

答案 1 :(得分:0)

我设法解决了这个问题。

  1. Liferay提供每个portlet的生成URL功能。所以我为目标portlet创建了一个URL。

  2. 然后将该网址传递给liferay弹出。

  3. 这是我的代码:

    <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();
    });
    

    }

    希望它对另一个人有所帮助。感谢。