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