获得登录用户对象,并取出用户名、注册邮箱等用户信息无论在主题与皮肤开发,还是Portlet开发中都经常会用到。如何取出用户信息?我们通过配置加编码的方式实现:
第一种方法:标签+代码方式:
首先修改
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 user的jar包,这个包的名字是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:zhengwp@cn.ibm.com或者邮件zhengwenping@126.com与作者取得联系以便获取帮助。