5 java portlet liferay liferay-6
在大多数情况下,有必要知道Liferay portlet的实际名称.
特别是在Liferay的主题中,我可以添加"Login portlet",如下所示:
$theme.runtime("58", "", $velocityPortletPreferences.toString())
Run Code Online (Sandbox Code Playgroud)
它有效.但是当我尝试添加一些ID为"some-portlet-id"的自定义portlet时
$theme.runtime("some-portlet-id", "", $velocityPortletPreferences.toString())
Run Code Online (Sandbox Code Playgroud)
它不起作用.我怀疑,Liferay portlet的名称不等于portlet的ID.
在这种情况下,有人可以解释一下,这些名称是如何生成的?
提前致谢.
n1c*_*las 10
如果portlet在Liferay门户中,即portlet ID等于portlet的名称,即ROOT.
但是如果你试图在其他war文件中获取portlet的名称(例如插件环境),在这种情况下,将根据此规则生成portlet名称:
[portlet ID] + _WAR_ + [webapp name, where portlet is placed]
Run Code Online (Sandbox Code Playgroud)
请注意,这两个portlet ID和webapp name排除-从他们的名字.
因此,如果您some-portlet-id在WAR-file中有id some-portlet的portlet,那么portlet名称如下所示:
someportletid_WAR_someportlet
Run Code Online (Sandbox Code Playgroud)
这也是Liferay的主题名称.
另请注意,Liferay portlet的名称也有可选的实例ID:
[portlet ID] + _WAR_ + [webapp name, where portlet is placed] + _INSTANCE_ + [portlet instance ID]
Run Code Online (Sandbox Code Playgroud)
对于那些portlet来说,它们是必需的,这instansable是真的.这基本上是4个任意字母.
someportletid_WAR_someportlet_INSTANCE_abcd
Run Code Online (Sandbox Code Playgroud)
但是请小心他们,因为你可以忽略那些实例ID并放置你想要的一切.但是如果你需要使用一些预先填充的数据(例如portlet首选项)来获取特定实例,那么你肯定需要以某种方式知道它.
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |