我的工作獲取當前用戶的Liferay:的Liferay 6.0.6與的JBoss 5.1和Struts2的。使用一個簡單的Java代碼
我的問題是,如何讓當前的用戶在Liferay的登錄後,使用的Java代碼。
我的工作獲取當前用戶的Liferay:的Liferay 6.0.6與的JBoss 5.1和Struts2的。使用一個簡單的Java代碼
我的問題是,如何讓當前的用戶在Liferay的登錄後,使用的Java代碼。
在你的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,用戶NAD WebKeys是門戶service.jar中的一部分。
如果你只需要一些ID來識別當前用戶也可以使用
String userId = request.getRemoteUser();
這個解決方案不是Liferay的具體應該JSR-286的門戶網站之間移植。
Liferay的提供的Util類
com.liferay.portal.util.PortalUtil
這個類包含了所有的工具方法來獲取常用的屬性。
嘗試使用PortalUtil.getUser(PortletRequest portletRequest)
方法,以避免創建新的對象和引用。
與ThemeDisplay有什麼不同? – cheloncio
@zhelon,什麼都沒有,你的請求從中獲取themeDisplay,然後的getUser(),PortalUtil.getUser()獲取請求一樣,如果你看到PortalImpl.getUser(),那麼你會發現這個request.getAttribute(WebKeys。用戶); –
這是其他可能的方式做到這一點:使用登錄ID
private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
? –
我的意思是,該解決方案應該是一個Java代碼,我們必須找回通過電子郵件當前用戶:) – Sabrina