Portal開發與配置技巧集錦(一)

zhengwenping發表於2018-12-03

 1.1  如何為自己留下進入管理介面的後門

1. 1.1   問題描述

在主題與皮膚開發的過程中,不小心刪除了 “管理”連結,無法再進入到 Portal 管理介面。這個問題其實挺嚴重的,如果不進入 Portal 管理介面,就無法解除安裝已經安裝的主題與皮膚,開發工作就無法進行下去。

1. 1.2   解決方案

有兩種方法解決這個問題。

第一種方法:為自己留一個後門。執行方法就是上一節提到的建立 URL 對映的方式,也就是說,新建一個 admin URL 對映,然後將 admin URL 對映到 Portal 管理介面,這樣萬一損壞了“管理”連結,則可以在登入系統後直接在位址列輸入: 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章