如何使用和存储用户偏好
How to use and store User Preferences
我是 portlet 开发的新手,我想知道如何存储每个用户的首选项。我正在使用 WebSphere 8.5 Portal Server、Spring 4.3.2 和 RAD v9.5。
目前我正在使用 PortletPreferences
将数据存储在我的 Controller.java
中,如下所示:
@ActionMapping(params = "action=saveUserPref")
public void saveUserSettings(ActionRequest req, @RequestParam("radio") String color) throws ReadOnlyException, ValidatorException, IOException {
PortletPreferences pref = req.getPreferences();
pref.setValue(accountService.getUsername()+"_fontcolor", color);
pref.store();
}
并像这样在我的 .jsp
中获取首选项:
<div style="color:<%=renderRequest.getPreferences().getValue(renderRequest.getPortletSession().getAttribute("username")+"_fontcolor",
"black")%>;">
我在一些帖子中读到此方法有效,但它不是保存用户首选项的最简洁方法,因为如果您有大量用户,这将变得非常慢。
现在我正在寻找一种快速保存和获取偏好的方法,即使有大量用户也是如此。现实世界中的最佳实践解决方案是什么?
即使在 10 万用户范围内,我也从未见过这会成为性能问题。 Portlet 首选项应该用于特定于 Portlet 的首选项,如果要在多个 Portlet 上共享它们,最好将它们存储在用户存储中,如 ldap。如果你使用 ldap portal 会为你处理缓存。您还可以使用旁观数据库作为 Portal 的一部分,并将用户属性存储在数据库中,它们作为 PUMA 用户对象的一部分。
使用 portlet 首选项,我建议缓存它们,这样您就不必每次都访问门户层。
但最后,特定于 portlet 的首选项,保存到特定于用户的 portlet 首选项,放入用户存储,如 ldap、look aside 或类似的东西,例如使用自己的数据库的 portlet 服务。
我是 portlet 开发的新手,我想知道如何存储每个用户的首选项。我正在使用 WebSphere 8.5 Portal Server、Spring 4.3.2 和 RAD v9.5。
目前我正在使用 PortletPreferences
将数据存储在我的 Controller.java
中,如下所示:
@ActionMapping(params = "action=saveUserPref")
public void saveUserSettings(ActionRequest req, @RequestParam("radio") String color) throws ReadOnlyException, ValidatorException, IOException {
PortletPreferences pref = req.getPreferences();
pref.setValue(accountService.getUsername()+"_fontcolor", color);
pref.store();
}
并像这样在我的 .jsp
中获取首选项:
<div style="color:<%=renderRequest.getPreferences().getValue(renderRequest.getPortletSession().getAttribute("username")+"_fontcolor",
"black")%>;">
我在一些帖子中读到此方法有效,但它不是保存用户首选项的最简洁方法,因为如果您有大量用户,这将变得非常慢。
现在我正在寻找一种快速保存和获取偏好的方法,即使有大量用户也是如此。现实世界中的最佳实践解决方案是什么?
即使在 10 万用户范围内,我也从未见过这会成为性能问题。 Portlet 首选项应该用于特定于 Portlet 的首选项,如果要在多个 Portlet 上共享它们,最好将它们存储在用户存储中,如 ldap。如果你使用 ldap portal 会为你处理缓存。您还可以使用旁观数据库作为 Portal 的一部分,并将用户属性存储在数据库中,它们作为 PUMA 用户对象的一部分。
使用 portlet 首选项,我建议缓存它们,这样您就不必每次都访问门户层。
但最后,特定于 portlet 的首选项,保存到特定于用户的 portlet 首选项,放入用户存储,如 ldap、look aside 或类似的东西,例如使用自己的数据库的 portlet 服务。