我正在使用:Liferay 6.0.6与JBoss 5.1和Struts2。
我的问题是,如何使用Java代码在登录后获取Liferay中的当前用户。
我正在使用:Liferay 6.0.6与JBoss 5.1和Struts2。
我的问题是,如何使用Java代码在登录后获取Liferay中的当前用户。
在您的 doView/processAction 方法中执行以下操作
User user = (User) request.getAttribute(WebKeys.USER);
或使用 ThemeDisplay 对象。它包含其他信息,如 companyId、groupId、...
ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
User user = td.getUser();
类 ThemeDisplay、User nad WebKeys 是 portal-service.jar 的一部分。
如果您只需要一些 id 来识别当前用户,您也可以使用
String userId = request.getRemoteUser();
这个解决方案不是 Liferay 特定的,应该可以在 jsr-286 门户之间移植。
Liferay 提供 Util 类
com.liferay.portal.util.PortalUtil
此类包含获取常用属性的所有实用方法。
尝试使用PortalUtil.getUser(PortletRequest portletRequest)
方法来避免创建新对象和引用。
这是另一种可能的方法:
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()