【发布时间】:2017-04-30 18:39:18
【问题描述】:
根据我的代码要求,我需要获取一些用户相关信息,这些信息是根据对组织和用户组模型的一些数据库调用计算得出的。根据我的绩效评估,这个过程花费了很多时间,因为这是在多个地方完成的。
为了快速获胜,我更喜欢在登录时只执行一次,但我希望存储此信息以便可以在整个门户中使用(在挂钩中,在自定义 portlet 中,在主题等)。
为了实现这一点,我打算使用以下代码,只是想检查是否有更好的解决方案(我在非 Liferay 的应用程序中使用了 session,但总是遇到 Liferay 的一些网络钓鱼问题):
ServiceContext sc = ServiceContextThreadLocal.getServiceContext();
sc.setAttribute("some-user-data", someUserData);
--
在一些 portlet/hook 中,我会这样做:
ServiceContext sc = ServiceContextThreadLocal.getServiceContext();
String someUserData = (String)sc.getAttribute("some-user-data");
谢谢! 阿杰
【问题讨论】: