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.2 渲染带有实例的 portlet 的 url
使用 liferay 和 icefaces 共享 Portlet 数据