portal开发与配置技巧集锦(一)

 1.1如何为自己留下进入管理界面的后门

1.1.1  问题描述

在主题与皮肤开发的过程中,不小心删除了“管理”链接,无法再进入到Portal管理界面。这个问题其实挺严重的,如果不进入Portal管理界面,就无法卸载已经安装的主题与皮肤,开发工作就无法进行下去。

1.1.2  解决方案

有两种方法解决这个问题。

第一种方法:为自己留一个后门。执行方法就是上一节提到的创建URL映射的方式,也就是说,新建一个adminURL映射,然后将adminURL映射到Portal管理界面,这样万一损坏了“管理”链接,则可以在登录系统后直接在地址栏输入:http://hostname:10040/wps/ myportal/admin进入到Portal管理界面。这算是给自己留的后门吧。具体的操作步骤可以参考上一节创建URL映射的过程。

二种方法:这种方法其实很简单,就是多打开几个页面,其中一个停留在Portal管理界面,而且要保证这个页面的会话数据是有效的(即:Session不要过期)。调试主题效果时使用其他页面,这样万一主题损坏,则可以立即切换到Portal管理界面,删除刚刚添加的、损坏的主题。

1.2  获取登录用户信息

1.2.1  问题描述

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

1.2.2  解决方案

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

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

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

然后导入IBM UserJAR这个包的名字是wp.user.api.jar可以在IBM/WebSphere/Portal Server/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();

}

%>

第二种方法Default.jsp里直接引入用户类包,并在主题里初始化。

参考代码如下:

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

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

<%@ 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("portlet service/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 );

%> 

1.3  个性化Portlet添加控制板

1.3.1  问题描述

在正常情况下,我们会按照如下的方法使用Portlet添加班来工作。

wpsadmin身份登录Portal 6.1系统,单击页面右上角的“展开选用板”按钮,如图1-10所示。

portal开发与配置技巧集锦3766.png

1-10  单击“展开选用板”按钮

可以看到Portlet选用板被成功初始化,如图1-11所示,这就是传说中的Portlet选用板。

portal开发与配置技巧集锦3836.png

1-11  传说中的Portlet选用板

通过将选用板上的Portlet拖曳到左侧页面,可以直接将Portlet定制到页面,并分配给有相关权限的用户使用,如图1-12所示。

portal开发与配置技巧集锦3926.png

1-12  可以直接将Portlet定制到页面

Portlet列表中分类选项条目的右侧,可以查阅该分类下的所有Portlet,如图1-13所示。

这时候就有人可能提出问题:这些分类都是默认的,难以识别,能不能按照我的类别分类,并且将我希望提供给用户的Portlet添加到相应的类别里?

回答是肯定的。以下是解决方法

portal开发与配置技巧集锦4090.png

1-13  Portlet的分类

1.3.2  解决方案

单击Portlet”选项右侧的三角形按钮,选择“配置”,如图1-14所示。

portal开发与配置技巧集锦4161.png

1-14  选择“配置”

击各个类别右侧的三角形按钮,选择“删除类别”,这个类别就被删除了,如图1-15所示。

选择“重命名类别”,还可以给这个类别改名称。

portal开发与配置技巧集锦4244.png

1-15  可以删除不想要的类别

单击“配置”右侧的三角形按钮,选择“创建新类别”,就可以创建新的类别了,如图1-16所示。

portal开发与配置技巧集锦4310.png

1-16  可以创建自己真正需要的类别

单击创建好的新类别右侧的三角形按钮,选择“添加Portlet”,就能为这个类别分配属于它的Portlet,如图1-17所示。

portal开发与配置技巧集锦4396.png

1-17  往新创建的类别里添加Portlet

如果你的类别被弄得一塌糊涂,则可以选择配置右侧的三角形按钮,选择“复位成缺省值”,那么你所个性化的所有类别都将被删除,系统会恢复成刚刚完成安装时的默认状态,如图1-18所示。

portal开发与配置技巧集锦4511.png

1-18  选择“复位成缺省值” 

这里的介绍比较简单,还有很多其他的用法,你都可以试试。


猜你喜欢

转载自blog.51cto.com/134834/2325239
今日推荐