userId bei Start eines Liferay-Portlets ermitteln

cuchulainn

Mitglied
Hallo alle zusammen,

ich entwickle gerade einige Portlets mit Liferay und IceFaces. Jetzt brauche ich die id des angemeldeten Benutzers. In einem Portlet funktioniert das auch mit Hilfe des ThemeDisplay.

Aber jetzt möchte ich gerne die id beim Start des Portlets herausfinden. Das funktioniert nicht. Ich erhalte immer eine nullpointer Exception.

Ich habe mein Portlet von GenericPortlet abgeleitet und wollte die userId in der init()-Methode ermitteln.

Code:
 public class Testportlet extends GenericPortlet {
 	
 	public void init(PortletConfig pConfig) throws PortletException {
 		super.init(pConfig);
 
 		FacesContext fc = FacesContext.getCurrentInstance();
         ExternalContext ec = fc.getExternalContext();
         
         PortletRequest  portletReq = (PortletRequest) ec.getRequest();
         ThemeDisplay td = (ThemeDisplay)(portletReq.getAttribute(WebKeys.THEME_DISPLAY));
         
 		System.out.println("init: " + td.getUserId());
 	}
 }

Kann mir jemand erklären, wie ich die userId beim Portletstart ermitteln kann?

Viele Grüße,

Christopher
 
Guten Morgen,

ich habe eine Lösung gefunden.

Und zwar habe ich die Methode

Code:
public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException

verwendet und die UserId folgedermaßen ermittelt:

Code:
ThemeDisplay themeDisplay= (ThemeDisplay)(request.getAttribute(WebKeys.THEME_DISPLAY));

Vielleicht nützt dieser Beitrag noch jemand anderem.
 

Neue Beiträge

Zurück