js_paneをクエリ文字列に設定して切り替えます 例えば、マイページの場合は
http://localhost:8080/aipo/portal/media-type/html/user/0000000336/page/default.psml/js_pane/P-1471e250287-10000?action=controls.Restore
個人設定ページの場合は
http://localhost:8080/aipo/portal/media-type/html/user/0000000336/page/default.psml/js_pane/P-1471e250287-1000c%2CP-1471e250287-1000d?action=controls.Restore&action=controls.Restore
管理設定ページの場合は
http://localhost:8080/aipo/portal/media-type/html/user/0000000336/page/default.psml/js_pane/101%2C131?action=controls.Restore&action=controls.Restore
のようになっています。
また、マイグループなどの個人設定・管理設定タブ内のポートレットを開く場合には、js_paneにポートレットのIDを指定します。(通常のポートレットでは最大化画面を開くときにはポートレットのIDをjs_peidに指定しているので混同しないように注意が必要です。)
このjs_paneの値は、データベースのdefault.psmlの値と対応しています。 例えばJavaでマイページ・個人設定・システム管理のjs_paneを読み出す際には、次のようにします。
/** * 指定したタブの ID を取得する. * * @param rundata * @param portletsName * PSML ファイルに記述されているタグ portletsの要素 title * @return */ public static String getPortletIDPane(RunData rundata, String portletsName) { try { Profile profile = ((JetspeedRunData) rundata).getProfile(); if (profile == null) { return null; } Portlets portlets = profile.getDocument().getPortlets(); if (portlets == null) { return null; } Portlets[] portletList = portlets.getPortletsArray(); if (portletList == null) { return null; } int length = portletList.length; for (int i = 0; i < length; i++) { if (portletsName.equals(portletList[i].getTitle())) { return portletList[i].getId(); } } } catch (Exception ex) { logger.error("ALCommonUtils.getPortletIDPane", ex); return null; } return null; }
また、個人設定・管理設定ページ内のポートレットのIDを読み出す場合には次のようにします。
/** * 個人設定・管理設定ページに含まれるポートレットのIdの場合trueを返す * * @param rundata * @param String * portletID * @return */ public static boolean isPortletIdinConfigPane(RunData rundata, String portletID) { try { Portlets portlets = ((JetspeedRunData) rundata).getProfile().getDocument().getPortlets(); if (portlets == null) { return false; } Portlets[] portletList = portlets.getPortletsArray(); if (portletList == null) { return false; } int length = portletList.length; String[] pids = new String[portletList.length]; for (int i = 0; i < length; i++) { Entry[] entries = portletList[i].getEntriesArray(); if (entries == null || entries.length <= 0) { continue; } if (!("個人設定".equals(portletList[i].getTitle()) || "システム管理" .equals(portletList[i].getTitle()))) { continue; } int ent_length = entries.length; for (int j = 0; j < ent_length; j++) { if (portletID.equals(entries[j].getId())) { return true; } } } return false; } catch (Exception ex) { logger.error("ALCommonUtils.isPortletIdinConfigPane", ex); return false; } }