我想问你一个问题。我使用Liferay 6.2。我有一个自定义portlet,它嵌入在我的自定义主题
中$theme.runtime("mycustomportlet_WAR_mycustomportlet")
这里是Liferay-portlet.xml的一些设置
<preferences-unique-per-layout>false</preferences-unique-per-layout>
<preferences-owned-by-group>true</preferences-owned-by-group>
<instanceable>false</instanceable>
在portlet控制器渲染方法中,我设置了portlet首选项(我想让我的portlet无边界)
PortletPreferences preferences = renderRequest.getPreferences();
preferences.setValue("portletSetupShowBorders","false");
try {
preferences.store();
} catch (ValidatorException e) {
e.printStackTrace();
}
但是当我检查Liferay和我的自定义嵌入portlet边界时。但是PORTLETPREFERENCE表的下面有一行首选项,ID是根据liferay-portlet.xml设置的:
<portlet-preferences>
<preference>
<name>portletSetupShowBorders</name>
<value>false</value>
</preference>
</portlet-preferences>
有人能解释我错在哪里吗?看起来像Liferay不明白。我知道如何以另一种方式设置偏好。但我需要这种方式来解决。
答案 0 :(得分:1)
问题在于false
:
liferay-portlet.xml
布局设置的首选项(包括<preferences-owned-by-group>true</preferences-owned-by-group>
)从布局中读取,只要它不可实现:
portletSetupShowBorders
因此,只要您的偏好按群组存储,就不会考虑它们....