如何在主题与皮肤中获取Portal登录用户信息

1.1.1 问题描述

 获得登录用户对象,并取出用户名、注册邮箱等用户信息无论在主题与皮肤开发,还是Portlet开发中都经常会用到。如何取出用户信息?我们通过配置加编码的方式实现:

1.1.2 解决方案

第一种方法:标签+代码方式:

首先修改

IBM/WebSphere/wp_profile/installedApps/[cellname]/wps.ear/wps.war/themes/html/ThemeName        目录下的Default.jsp文件:

1  <%@ page session="false" buffer="none" %>改成<%@ page session="true" %>

导入ibm userjar,这个包的名字是wp.user.api.jar,

可以在IBM/WebSphere/PortalServer/base/wp.user.api/shared/app下找到。

<%@ page import="com.ibm.wps.puma.User" %>

加入如下代码

<%

HttpSession mysession=request.getSession();

String loginname="";

if(mysession.getAttribute("com.ibm.wps.util.session_user")!=null){

  com.ibm.wps.puma.User myuser=(com.ibm.wps.puma.User)mysession.getAttribute("com.ibm.wps.util.session_user");

  loginname=myuser.getFullName();

}

%>

第二种方法:

<%@ page import ="com.ibm.portal.portlet.service.PortletServiceHome" %>

<%@ page import ="com.ibm.portal.portlet.service.PortletServiceUnavailableException" %>

<%@ page import ="com.ibm.portal.puma.User" %>

<%@ page import ="com.ibm.portal.um.PumaHome" %>

<%@ page import ="com.ibm.portal.um.PumaProfile" %>

<%@ page import ="com.ibm.portal.um.exceptions.PumaException" %>

 

<%

  PumaHome home = null;

  Context ctx = new InitialContext();

  PortletServiceHome serviceHome = (PortletServiceHome)ctx.lookup("portletservice/com.ibm.portal.um.portletservice.PumaHome");

 home = (PumaHome)serviceHome.getPortletService(PumaHome.class);

 PumaHome pumaHome = home;

 PumaProfile pumaProfile = pumaHome.getProfile();

 String currentUserName = null;

 User currentUser = (User)pumaProfile.getCurrentUser();

 currentUserName = currentUser.getName();

       out.print(currentUserName );

%>

作者:郑文平 从事IBM WebSphere Portal项目实施已有8年,拥有超过40个每个超过5个月的基于IBM Portal的项目经验。有任何的技术或非技术问题,您对可以通过MSN:[email protected]或者邮件[email protected]与作者取得联系以便获取帮助。

猜你喜欢

转载自blog.csdn.net/crppawen/article/details/5322015