Liferay Embedded portlet 不调用渲染函数

Posted

技术标签:

【中文标题】Liferay Embedded portlet 不调用渲染函数【英文标题】:Liferay Embedded portlet does not call render function 【发布时间】:2019-06-08 14:52:57 【问题描述】:

我到处寻找这个错误,我没有发现其他问题

目前我正在使用 Liferay 7.0,并将我的 portlet 嵌入到 Web 内容模板中,如下所示:

 <div class ="container-fluid">
        <div class ="row">
            <div class ="col-md-6 col-sm-6">

         <#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") />
       <@liferay_portlet["runtime"]
             defaultPreferences="$freeMarkerPortletPreferences"
             portletProviderAction=portletProviderAction.VIEW
             portletName="foo" />
             $freeMarkerPortletPreferences.reset()
            </div>
        </div>
    </div>

Portlet 在 freemarker 模板之外工作正常,但是在其中调用 actionRequest 按钮但它从不进入渲染功能,所以我设置的按钮什么都不做。

对于将 portlet 放入 freemarker 模板中是否有任何特殊要求?我是不是忘了什么?

【问题讨论】:

【参考方案1】:

您似乎是embedding by portletName,所以它可以是:

Instanceable,然后你需要提供它的实例ID,如:

 instanceId="INSTANCE_ID"

如果没有,设置com.liferay.portlet.instanceable=false

如果您的 portlet 是可实例化的,则必须提供实例 ID;否则,您可以删除此行。要将 portlet 设置为不可实例化,请将 portlet 组件注释中的属性 com.liferay.portlet.instanceable 设置为 false

【讨论】:

它不可实例化。但在某些调试时间也尝试使用 instance 和 instanceId portlet 显示它只是不调用渲染方法。也不渲染请求函数。操作请求运行良好 如果一个portlet 出现,它就会被渲染。如果您无法在该 portlet 的渲染方法中遇到任何断点或日志消息,请确保部署的代码符合您的预期。

以上是关于Liferay Embedded portlet 不调用渲染函数的主要内容,如果未能解决你的问题,请参考以下文章

liferay 7 中 liferay-portlet.xml 的等效文件是啥?

如何从 Liferay 7 取消部署 portlet?

Liferay 7.2 渲染带有实例的 portlet 的 url

使用 liferay 和 icefaces 共享 Portlet 数据

如何使用管理员 Liferay 将我的自定义 portlet 拖/添加到 liferay 页面?

为 Liferay 开发 portlet 的限制/缺点 [关闭]