0

我有一个配置为首选项公司范围的 portlet,因此每个人都可以共享相同的首选项

现在我想为这些偏好设置一个默认值,所以这个代码应该只需要在整个生命周期的第一次执行。这就是为什么我相信 init() 方法是设置此默认值的最佳选择,以防它们之前尚未设置。

如何从那里检索 PortletPreferences 对象?

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

4

1 回答 1

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选项,则必须重新启动服务器才能激活它们。

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

于 2012-08-15T13:40:07.037 回答