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

Liferay:如何在portlet上获取PortletPreferences对象´;s init()?,liferay,preferences,portlet,init,Liferay,Preferences,Portlet,Init,我有一个portlet,它被配置为公司范围内的首选项,所以每个人都共享相同的首选项 现在,我想在这些首选项上设置一个默认值,所以在整个生命周期中,应该只需要第一次执行这段代码。这就是为什么我认为init()方法是设置此默认值的最佳选项,以防以前未设置这些值 如何从那里检索PortletPreferences对象 编辑我正在寻找可从GenericPortlet检索到的portletContext和portletConfig,但到目前为止运气不佳如果您真的从未更改过这些值,那么可以初始化它们一次并保

我有一个portlet,它被配置为公司范围内的首选项,所以每个人都共享相同的首选项

现在,我想在这些首选项上设置一个默认值,所以在整个生命周期中,应该只需要第一次执行这段代码。这就是为什么我认为init()方法是设置此默认值的最佳选项,以防以前未设置这些值

如何从那里检索PortletPreferences对象


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

如果您真的从未更改过这些值,那么可以初始化它们一次并保留它们,直到您重新启动服务器,我会在您的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
com.example.MyPortlet
我的第一个pref
一些默认值
请记住:如果您更改portlet pref,您必须重新启动服务器才能激活它们


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

我的问题是,将首选项编写为init params并不好,因为我需要一种编程方式,每次部署时都使用来自web上下文的实时信息(因此init是完美的),我确信这是一个输入错误,Olaf,不应该是首选项进入标记,例如:Name Value@Sharanbm谢谢-愚蠢的复制/粘贴/编辑错误,在中留下了错误的部分。已更正。@user1352530如果您通过实际配置以外的其他方式(您将使用PortletPreferences)派生值,为什么还要麻烦PortletPreferences呢?只需导出所需的值,并将其存储在某个位置(在这种情况下,即使是成员变量也可以)。另外,请注意前面的评论:我已经编辑了xml。