我正在尝试在Liferay 6.0.5的布局模板中使用Portlet,我遇到了一些麻烦。我尝试过一些教程,包括Liferay Wiki上提供的示例:http://www.liferay.com/community/wiki/-/wiki/Main/Add+runtime+portlets+to+a+layout#section-Add+runtime+portlets+to+a+layout-Related+Articles。问题是,这些例子都不适合我。对$ processor.processPortlet的调用什么都不做;我的布局模板生成一个空单元格。
我模板中的代码如下:
<div class="columns-1-2" id="main-content" role="main">
#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
</div>
我还要强调,尽管对这个portlet的调用是针对一个可实例化的自定义portlet,但我尝试过对非实例化portlet的大量其他类型的调用,甚至是Liferay的库存portlet:
$processor.processPortlet("tabs_WAR_tabsportlet")
$processor.processPortlet("58")
这些电话都不适合我。
我已经查看了liferay日志,并且与此模板相关的日志中没有错误,使用此模板加载页面,我的语法等等。我想知道这个特定调用的语法是否有在Liferay 6中更改了,或者如果有一些设置我需要在我的环境中调整以启用此功能?如果没有对processPortlet函数的调用工作,我的Liferay配置中是否有一个特定的东西,我应该看看它是否有效?
提前谢谢!
答案 0 :(得分:1)
我的代码中没有任何问题,这应该可行。但是你可能错过了你在条件表达式中的作用:
#if ($browserSniffer.isIe($request) && $browserSniffer.getMajorVersion($request) < 8)
...
#end
如果你使用IE6或IE7以外的任何东西进行测试,你将看不到条件块的内容