我有一个portlet,配置为preferences-commpany-wide,所以每个人都共享相同的首选项
现在我想在这些首选项上加上一个默认值,因此只需要在整个生命周期内首次执行此代码。这就是为什么我认为init()方法是设置这个默认值的最佳选择,以防它们之前没有设置过。
如何从那里检索PortletPreferences对象?
编辑我正在寻找可从GenericPortlet检索的portletContext和portletConfig但到目前为止没有运气
答案 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首选项,则必须重新启动服务器才能激活它们。
如果您碰巧担心获取首选项的性能:测量是否有影响,发布数字。我敢打赌,你可以在其他地方获得很多更多的表现。如果你绝对无法在其他地方获得性能:恭喜你,你有一个调整良好的系统。