14

JBoss 5.1およびStruts2を使用したLiferay 6.0.6

私の質問は、Javaコードを使用して、ログインしたらLiferayで現在のユーザーを取得する方法です。

4

3 に答える 3

28

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、および WebKeys は、portal-service.jar の一部です。

現在のユーザーを識別するためにIDが必要な場合は、使用することもできます

String userId = request.getRemoteUser();

このソリューションは Liferay 固有のものではなく、jsr-286 ポータル間で移植可能である必要があります。

于 2012-05-04T12:23:21.473 に答える
6

これはそれを行う別の可能な方法です:

private LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance();
User currentUser=liferayFacesContext.getUser()
于 2013-04-25T17:41:46.863 に答える
6

Liferay は Util クラスを提供します

com.liferay.portal.util.PortalUtil

このクラスには、頻繁に使用される属性を取得するためのすべてのユーティリティ メソッドが含まれています。

メソッドを使用しPortalUtil.getUser(PortletRequest portletRequest)て、新しいオブジェクトと参照を作成しないようにしてください。

于 2012-06-06T05:36:51.223 に答える