Liferay 6.2 - 从客户端加载portlet

时间:2017-04-09 11:09:55

标签: javascript liferay-6.2

我使用Liferay 6.2作为我的门户平台。我的问题是,是否有办法通过ajax加载portlet?仅提供portlet id。

e.g。

这是portlet信息:

<portlet>
    <portlet-name>my_portlet</portlet-name>
    <instanceable>false</instanceable>
    <private-session-attributes>false</private-session-attributes>
    <header-portlet-javascript>/js/my_portlet/app.js</header-portlet-
</portlet>

<portlet>
    <portlet-name>my_portlet</portlet-name>
    <display-name>My Portlet</display-name>
    <portlet-class>com.ui.portlets.generic.GenericPortlet</portlet-class>
    <init-param>
        <name>view-template</name>
        <value>/view.jsp</value>
    </init-param>
    <expiration-cache>0</expiration-cache>
    <supports>
        <mime-type>text/html</mime-type>
    </supports>
    <portlet-info>
        <title>myportlet</title>
    </portlet-info>
</portlet>

我想从客户端(通过javascript)获取渲染html portlet以及它的所有参数和包含的文件?

1 个答案:

答案 0 :(得分:1)

不是一个干净的方式,但我不知道其他任何事情。

有一些称为小部件URL的东西。

您可以通过任何portlet的配置获得它。

enter image description here

现在在iFrame中加载此网址。你将实现加载protlet而不刷新页面的目标。

这里有一些示例代码段。

window.Liferay = window.Liferay || {};

Liferay.Widget = function(options) {
    options = options || {};

    var id = options.id || '_Liferay_widget'
            + (Math.ceil(Math.random() * (new Date).getTime()));
    var height = options.height || '100%';
    var url = options.url
            || 'http://www.liferay.com/widget/web/guest/community/forums/-/message_boards';
    var width = options.width || '100%';

    var html = '<iframe frameborder="0" height="' + height + '" id="' + id
            + '" src="' + url + '" width="' + width + '"></iframe>';
    return html;
}
相关问题