Liferay:从portlet控制器设置portlet首选项

时间:2015-10-02 11:39:53

标签: liferay liferay-6 portlet liferay-theme

我想问你一个问题。我使用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不明白。我知道如何以另一种方式设置偏好。但我需要这种方式来解决。

1 个答案:

答案 0 :(得分:1)

问题在于false

liferay-portlet.xml

布局设置的首选项(包括<preferences-owned-by-group>true</preferences-owned-by-group> )从布局中读取,只要它不可实现:

portletSetupShowBorders

因此,只要您的偏好按群组存储,就不会考虑它们....