Fórum

Liferay portlet 如何從 JSP get UserID UserName

真理 郭, modificado 10 Anos atrás.

Liferay portlet 如何從 JSP get UserID UserName

New Member Postagens: 5 Data de Entrada: 17/04/13 Postagens Recentes
Dear All :
我在 liferay-portal-6.1.1-ce-ga2 --> tomcat-7.0.27 新增了一個 BIRT Report portlet
搜文可以在 JSP 中
----------------------------------------------------------------------------------------------------------------------
<%@ page import="com.liferay.portal.model.User" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<%@ page import="javax.portlet.PortletRequest"%>
<%@ page import="java.util.Map"%>
<portlet:defineObjects />
<%
Map userInfo = (Map)renderRequest.getAttribute(PortletRequest.USER_INFO);
String givenName = (userInfo!=null)? (String) userInfo.get("user.name.given") : "not-login";
String familyName = (userInfo!=null)? (String) userInfo.get("user.name.family") : "not-login";
%>
-----------------------------------------------------------------------------------------------------------------------
BUT 得到結果:
-----------------------------------------------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 17

14: <%@ page import="java.util.Map"%>
15: <portlet:defineObjects />
16: <%
17: Map userInfo = (Map)renderRequest.getAttribute(PortletRequest.USER_INFO);
18: %>
-----------------------------------------------------------------------------------------------------------------------
可以提供建議給我嗎?或者有更好方法可以從 JSP 取得 Liferay UserID UserName
Thanks.
thumbnail
Arcane Huang, modificado 10 Anos atrás.

RE: Liferay portlet 如何從 JSP get UserID UserName

Junior Member Postagens: 38 Data de Entrada: 13/04/10 Postagens Recentes
Hi 真理,

通常建議由以下method取出,再get 其他 userId, userName等。
User user = PortalUtil.getUser(request);
Chenli Kuo, modificado 10 Anos atrás.

RE: Liferay portlet 如何從 JSP get UserID UserName

New Member Postagens: 5 Data de Entrada: 17/04/13 Postagens Recentes
Arcane Huang:
Hi 真理,

通常建議由以下method取出,再get 其他 userId, userName等。
User user = PortalUtil.getUser(request);


Hey Mr.黃
我改用
<%@ page import="com.liferay.portal.util.PortalUtil" %>
<%@ page import="com.liferay.portal.service.LayoutSetBranchLocalService" %>
<%@ page import="com.liferay.portal.model.User" %>
<%@ page import="com.liferay.portal.service.LayoutSetLocalServiceUtil" %>
<%@ page import="com.liferay.portal.service.UserLocalServiceUtil" %>
<%
// get user userid
User user = com.liferay.portal.util.PortalUtil.getUser(request);
long LUserId = com.liferay.portal.util.PortalUtil.getUserId(request);
String LUserName = com.liferay.portal.util.PortalUtil.getUserName(LUserId, null);
%>
<p>User ID: <%= LUserId %></p>
<p>User Name: <%= LUserName %></p>

但是得到
User ID: 0
User Name: null

我搜尋一些網路文章還是未找到確認答案,請給我一些建議。
謝謝協助!
PS 請問你是景佳 黃先生嗎?希望有機會合作。
thumbnail
Arcane Huang, modificado 10 Anos atrás.

RE: Liferay portlet 如何從 JSP get UserID UserName

Junior Member Postagens: 38 Data de Entrada: 13/04/10 Postagens Recentes
是的,
User == null 與 UserId == 0
都表示沒有抓到該User,操作時需要登入後就會取得。
Chenli Kuo, modificado 10 Anos atrás.

RE: Liferay portlet 如何從 JSP get UserID UserName

New Member Postagens: 5 Data de Entrada: 17/04/13 Postagens Recentes
Hey Mr.黃
我已經Deploy portlet 以及將 index.jsp 更新登入 Liferay server 執行結果還是 0
我參考 https://www.liferay.com/zh/community/forums/-/message_boards/message/2934268
是不是我需要強制修改 liferay-portal-6.1.1-ce-ga2\tomcat-7.0.27\webapps\birt-viewer\WEB-INF\web.xml
又應該怎麼修改呢?
謝謝你的協助。