每个 Portlet 实例的全局配置(与用户无关)



JSR286 规范是否提供了任何接口或类来存储 Portlet 的配置参数?PortletPreferences界面允许我存储首选项,但据我所知,这些首选项是特定于用户的。我还读到您可以将东西存储在PortletSession中,但它的范围也是特定于用户的(而且我认为它不是持久的(。

我读到的另一件事是可在应用程序范围内使用的PortletContext。我读到有一个名为 setAttribute 的属性,但我不知道这些属性是否持久。如果我重新启动门户网站服务器,我不知道这些设置是否仍然存在。另外,如果我有多个 Portlet 实例,我想为每个实例进行不同的设置。

所以我的问题是;在 Portlet 2.0 API (JSR286( 中是否有任何接口/类可以在 Portlet 实例范围内持久存储数据?

我刚刚找到了自己问题的解决方案。IBM似乎没有完全遵循JSR286规范(对我有利(,而是根据用户所处的Portlet模式确定PortletPreferences的范围。

如果用户处于 VIEWEDITHELP 模式(JSR286 规范中的默认值(,则首选项的存储方式与 JSR286 规范中定义的方式相同。它们依赖于用户和 Portlet 实例,对于个性化非常有用。

如果用户处于EDIT_DEFAULTS模式(定制模式(,那么将全局存储一个 Portlet 实例的首选项。这意味着,如果在多个页面上使用 Portlet,则配置仅适用于其中一个实例。

最后,如果用户处于 CONFIG 模式(定制模式(,则会全局存储 Portlet 的首选项。这意味着所有 Portlet 实例的所有用户都将使用相同的配置。

最新更新