2012-05-04 8 views
13

Sto lavorando con: Liferay 6.0.6 con JBoss 5.1 e Struts2.Prendi l'utente corrente Liferay utilizzando un semplice codice Java

La mia domanda è, come ottenere l'utente corrente in Liferay una volta effettuato l'accesso, utilizzando un codice Java .

+0

usando da ID di accesso? –

+0

Volevo dire, la soluzione deve essere un codice Java e dobbiamo recuperare l'utente corrente tramite e-mail :) – Sabrina

risposta

27

nel metodo doView/processAction facciamo seguire

User user = (User) request.getAttribute(WebKeys.USER); 

o utilizzare l'oggetto ThemeDisplay. Esso contiene un altro informazioni come CompanyID, groupId, ...

ThemeDisplay td =(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY); 
User user = td.getUser(); 

Classi ThemeDisplay, WebKeys nad utenti fanno parte del portale-service.jar.

Se avete bisogno solo alcuni ID per identificare l'utente corrente è anche possibile utilizzare

String userId = request.getRemoteUser(); 

Questa soluzione non è Liferay specifico e dovrebbe essere portabile tra JSR-286 portali.

+0

vi ringrazio molto :) io prova tutto questo e vi dirò – Sabrina

+1

mi può dirvi di più sull'istanza "richiesta". come inizializzarlo? – Sabrina

+2

sua sia RenderRequest, ActionRequest, EventRequest o ResourceRequest. Se non si ha familiarità con loro allora si dovrebbe leggere alcuni portlet tutorial, ad esempio http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/understanding-the-two-phases-of- . portlet esecuzione –

6

Liferay offre classe Util

com.liferay.portal.util.PortalUtil

Questa classe contiene tutti i metodi di utilità per ottenere gli attributi di uso frequente.

Prova utilizzando PortalUtil.getUser(PortletRequest portletRequest) metodo per evitare la creazione di nuovi oggetti e riferimenti.

+0

Qual è il diverso con ThemeDisplay? – cheloncio

+0

@zhelon, niente, è recuperare themeDisplay dalla richiesta, e quindi getUser() da esso, PortalUtil.getUser() recupera lo stesso da richiesta, se si vede PortalImpl.getUser() allora si noterà questo request.getAttribute (WebKeys. UTENTE); –

6

Questo è un altro modo possibile per farlo:

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance(); 
User currentUser=liferayFacesContext.getUser() 
Problemi correlati