Liferay Portal: Using Runtime Portlets correctly -- processor.processPortlet()
我目前正在尝试在 Liferay 6.0.5 的布局模板中使用 Portlet,但遇到了一些麻烦。我尝试了许多教程,包括 Liferay Wiki 上提供的示例:http://www.liferay.com/community/wiki/-/wiki/Main/Add runtime portlets to a layout#section-Add runtime portlet 到布局相关文章。问题是,这些示例中没有一个适合我。对 $processor.processPortlet 的调用什么也不做;我的布局模板生成了一个空单元格。
我的模板中的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8) <table class="portlet-layout"> <tr> <td class="portlet-column portlet-column-only" id="column-1"> $processor.processPortlet("currentPatient_WAR_opportalweb_INSTANCE_r2Be") $processor.processColumn("column-1","portlet-column-content portlet-column-content-only") </td> </tr> </table> ...... #end |
我还要强调的是,虽然对这个 portlet 的调用是对一个可实例化的自定义 portlet 的调用,但我已经尝试了许多其他类型的对不可实例化的 portlet 的调用,甚至是 Liferay 的股票 portlet:
1 2 3 | $processor.processPortlet("tabs_WAR_tabsportlet") $processor.processPortlet("58") |
这些电话都不适合我。
我查看了 liferay 日志,在与此模板、使用此模板的页面加载、我的语法等相关的日志中没有错误。我想知道此特定调用的语法是否具有在 Liferay 6 中更改,或者是否需要在我的环境中调整某些设置以启用此功能?如果没有对 processPortlet 函数的调用起作用,我的 Liferay 配置中是否有特定的东西需要我查看以使其起作用?
先谢谢你!
我在您的代码中没有发现任何问题,这应该可行。但是您可能没有注意到您在条件表达式中:
1 2 3 | #if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8) ... #end |
如果您使用 IE6 或 IE7 以外的任何工具进行测试,您将看不到条件块的内容