Liferay:如何在portlet的init()上获取PortletPreferences对象?

时间:2012-08-15 12:31:52

标签: liferay preferences portlet init

我有一个portlet,配置为preferences-commpany-wide,所以每个人都共享相同的首选项

现在我想在这些首选项上加上一个默认值,因此只需要在整个生命周期内首次执行此代码。这就是为什么我认为init()方法是设置这个默认值的最佳选择,以防它们之前没有设置过。

如何从那里检索PortletPreferences对象?

编辑我正在寻找可从GenericPortlet检索的portletContext和portletConfig但到目前为止没有运气

1 个答案:

答案 0 :(得分:1)

如果你真的从来没有永远更改值,那么可以将它们初始化一次并保留它们直到你重新启动服务器,我会在你的portlet中对它们进行硬编码。

如果配置可能发生变化的可能性很小(如果最初只是在向页面添加portlet之后),请在需要时阅读它们。并在portlet.xml中提供默认值:

<portlet>
    <portlet-name>my-portlet</portlet-name>
    <portlet-class>
        com.example.MyPortlet
    </portlet-class>
    <portlet-preferences>
        <preference>
            <name>my-first-pref</name>
            <value>some default value</value>
        </preference>
    </portlet-preferences>
</portlet>

请记住:如果您更改portlet首选项,则必须重新启动服务器才能激活它们。

如果您碰巧担心获取首选项的性能:测量是否有影响,发布数字。我敢打赌,你可以在其他地方获得很多更多的表现。如果你绝对无法在其他地方获得性能:恭喜你,你有一个调整良好的系统。

相关问题