1.1 如何为自己留下进入管理界面的后门
1. 1.1 问题描述
在主题与皮肤开发的过程中,不小心删除了 “管理”链接,无法再进入到 Portal 管理界面。这个问题其实挺严重的,如果不进入 Portal 管理界面,就无法卸载已经安装的主题与皮肤,开发工作就无法进行下去。
1. 1.2 解决方案
有两种方法解决这个问题。
第一种方法:为自己留一个后门。执行方法就是上一节提到的创建 URL 映射的方式,也就是说,新建一个 admin 的 URL 映射,然后将 admin 的 URL 映射到 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 User 的 JAR 包 , 这个包的名字是 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 所示。
图 1- 10 单击“展开选用板”按钮
可以看到 Portlet 选用板被成功初始化,如图 1- 11 所示,这就是传说中的 Portlet 选用板。
图 1- 11 传说中的 Portlet 选用板
通过将选用板上的 Portlet 拖曳到左侧页面,可以直接将 Portlet 定制到页面,并分配给有相关权限的用户使用,如图 1- 12 所示。
图 1- 12 可以直接将 Portlet 定制到页面
单 击 Portlet 列表中分类选项条目的右侧,可以查阅该分类下的所有 Portlet ,如图 1- 13 所示。
这时候就有人可能提出问题:这些分类都是默认的,难以识别,能不能按照我的类别分类,并且将我希望提供给用户的 Portlet 添加到相应的类别里?
回答是肯定的。以下是解决方法
图 1- 13 Portlet 的分类
1. 3.2 解决方案
单击 “ Portlet ”选项右侧的三角形按钮,选择“配置”,如图 1- 14 所示。
图 1- 14 选择“配置”
单 击各个类别右侧的三角形按钮,选择 “删除类别”,这个类别就被删除了,如图 1- 15 所示。
选择 “重命名类别”,还可以给这个类别改名称。
图 1- 15 可以删除不想要的类别
单击 “配置”右侧的三角形按钮,选择“创建新类别”,就可以创建新的类别了,如图 1- 16 所示。
图 1- 16 可以创建自己真正需要的类别
单击创建好的新类别右侧的三角形按钮,选择 “添加 Portlet ”,就能为这个类别分配属于它的 Portlet ,如图 1- 17 所示。
图 1- 17 往新创建的类别里添加 Portlet
如果你的类别被弄得一塌糊涂,则可以选择配置右侧的三角形按钮,选择 “复位成缺省值”,那么你所个性化的所有类别都将被删除,系统会恢复成刚刚完成安装时的默认状态,如图 1- 18 所示。
图 1- 18 选择“复位成缺省值”
这里的介绍比较简单,还有很多其他的用法,你都可以试试。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9116427/viewspace-2222457/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9116427/viewspace-2222457/