JSR286规范是否提供了存储portlet配置参数的接口或类?
PortletPreferences
界面允许我存储首选项,但据我所知,这些是用户特定的。我还读到你可以将东西存储在PortletSession
中,但它的范围也是用户特定的(我不认为它是持久的)。
我读到的另一件事是PortletContext
,它可以在应用程序范围内使用。我读到有一个名为setAttribute
的属性,但我不知道这些属性是否持久。如果我重新启动门户网站服务器,我不知道这些设置是否仍然存在。另外,如果我有多个portlet实例,我想对每个实例进行不同的设置。
所以我的问题是; portlet 2.0 API(JSR286)中是否有任何接口/类可以持久地在portlet实例范围内存储数据?
答案 0 :(得分:0)
我刚刚找到了解决自己问题的方法。看来IBM并没有完全遵循JSR286规范(在我的优势),并根据用户所在的portlet模式确定PortletPreferences
的范围。
如果用户处于 VIEW , EDIT 或 HELP 模式(JSR286规范中的默认设置),则首选项将按照已定义的方式存储在JSR286规范中。它们依赖于用户和portlet实例,对个性化非常有用。
如果用户处于 EDIT_DEFAULTS 模式(自定义模式),则首选项将全局存储为一个portlet实例。这意味着如果在多个页面上使用portlet,则配置仅适用于其中一个实例。
最后,如果用户处于 CONFIG 模式(自定义模式),则首选项将全局存储为portlet。这意味着所有portlet实例的所有用户都将使用相同的配置。