Administration Console の拡張
![]() |
![]() |
![]() |
![]() |
この節では、Administration Console の JSP テンプレート、スタイル、およびユーザ入力コントロールを使用するポートレットを追加する方法について説明します。たとえば、以下のようなコンテンツを表示するポートレットを追加できます。
ContentBook
に表示し、ユーザが特定のリソースに移動したり、テーブルからリソースのアクションを呼び出したりできるようにする (図 2-5 に示した WebLogic Server テーブルの例を参照してください)。ContentBook
にフォームを表示し、提供したリソースをユーザがモニタしたりコンフィグレーションしたりできるようにする。図 7-1 にこのプロセスを示します。プロセスの手順、および各手順の結果については、表 7-1 を参照してください。プロセスの各手順の詳細については、それ以降の節を参照してください。
図 7-1 Administration Console 拡張の開発の概要
|
|
|
|
||
|
||
|
JSP で表示するテキスト文字列は、すべてメッセージ バンドルで定義することをお勧めします。メッセージ バンドルの作成の詳細については、「メッセージ バンドルの作成」を参照してください。
WebLogic Server では、テキスト コントロール、チェック ボックス、ラジオ コントロールなどのさまざまな HTML 入力コントロールを表示できる <wl:form>
JSP タグを提供しています。フォームは、読み取り専用にすることも、ユーザ入力可能にすることもできます。ユーザ入力可能なフォームには、ビジネス レイヤで処理するためのフォーム データをユーザがポストできるように、ボタンを含める必要があります。
データをテーブル形式で表示する <wl:table>
JSP タグも提供されています。テーブル内の各行は、WebLogic Server インスタンス、アプリケーション、ログ メッセージなどの 1 つのエンティティを表します (図 7-2 を参照)。ハイパーテキスト リンクを表示するようにテーブル カラムをコンフィグレーションできます。ハイパーテキスト リンクを利用すると、ユーザはテーブル内の項目に関する詳細情報を表示するページに移動できます。HTML チェック ボックス コントロールを含むテーブル カラムを作成することもできます。ユーザがテーブル行のチェック ボックスを選択して送信ボタンをクリックすると、拡張ではその行全体に対応するビジネス ロジックを呼び出します。たとえば、チェック ボックスを使用して、ある行が表す項目を削除することができます。
これらのタグはいずれも、Apache Struts Action
および ActionForm
を使用して、ビジネス レイヤとプレゼンテーション レイヤの間でデータを渡します。
Apache Struts は ActionForm
Bean (フォーム Bean) をインスタンス化してデータを設定するための複数の方法をサポートしています。たとえば、フォームの各プロパティのゲッター メソッドとセッター メソッドを含む独自の具象 Java Bean をコーディングできます。また、Struts DynaActionForm
Bean を使用できます。この Bean では、Java Bean を動的にコンフィグレーションして、Struts コンフィグレーション ファイルで宣言されているプロパティを格納します。
BEA JSP タグを使用して Administration Console にフォームを表示する場合は、Struts がサポートするいずれかの方法を使用して、フォーム Bean を作成してデータを設定できます (「例 : Struts ポートレットによるコンテンツの表示」の例では、カスタム Java Bean をコーディングする代わりに DynaActionForm
Bean を使用しています)。
どの方法を選択する場合でも、Java Bean には以下のプロパティを含める必要があります。
handle
。com.bea.console.handles.Handle
型、またはユーザが作成するカスタム Handle
クラス。ポータル フレームワークはこのプロパティを使用して、ActionForm
Bean と、Bean にデータを設定するためのデータ ソース (MBean など) を関連付けます。「ActionForm と行 Bean のハンドル」を参照してください。
BEA JSP タグを使用して Administration Console にテーブルを表示する場合は、2 つのフォーム Bean を作成する必要があります。1 つはテーブル内の行を表す Bean (行 Bean)、もう 1 つは行 Bean の集合を含む Bean (テーブル Bean) です。行 Bean の各プロパティはテーブル カラムとして表示されます。たとえば図 7-2 では、各行 Bean インスタンスに name
、state
、health
、および listenPort
プロパティが含まれています。
行 Bean を作成するには、各プロパティを定義する具象 Java Bean を作成する必要があります。Struts DynaActionForm
Bean を使用して、Struts コンフィグレーション ファイルで宣言されているプロパティを動的に格納することはできません。
テーブル Bean を作成する場合は、Struts がサポートするいずれかの方法を使用して、フォーム Bean を作成してデータを設定できます。どの方法を選択する場合でも、テーブル Bean には以下のプロパティを含める必要があります。
content
。java.util.Collection
型でなければなりません。handle
。com.bea.console.handles.Handle
型、またはユーザが作成するカスタム Handle
クラス。ポータル フレームワークでは、フォーム Bean とテーブル Bean でこのプロパティを宣言することを求めていますが、テーブル Bean の場合、このプロパティの有用性は限られています。通常、テーブル Bean は行 Bean の単なる集合です。行 Bean は基底のデータ ソースを公開しますが、テーブル Bean では公開されません。どの Action
クラスがテーブル Bean にデータを設定したかを追跡する必要がない限り、テーブル Bean のこのプロパティの値を設定する必要はありません (ただし、宣言する必要はあります)。「ActionForm と行 Bean のハンドル」を参照してください。
チェック ボックスのカラムを含むようにテーブルをコンフィグレーションする場合は (選択されたテーブル行 Bean に対して Struts Action
を呼び出すことができる)、テーブル Bean に次のプロパティを含める必要があります。
chosenContents
。プリミティブ型の配列または com.bea.console.handles.Handle
の配列。テーブル内のチェック ボックスの扱い方については、「テーブルへのボタンとチェック ボックスの追加」を参照してください。ActionForm
Bean または行 Bean のインスタンスをユニークに識別して、Bean と基底のデータソースの相関関係を確立するには、Handle
オブジェクトを作成、使用できます。Handle
オブジェクトは com.bea.console.handles.Handle
インタフェースを実装する Java オブジェクトです。
Apache Struts コントローラ サーブレットは HttpServletRequest
オブジェクトに Handle
オブジェクトを格納して、Struts Action、Beehive ページ フロー、または JSP で使用できるようにします。
Administration Console は、テーブル JSP 内の行 (図 7-2 を参照) を対応するコンフィグレーション JSP にリンクするときに Handle
オブジェクトを使用します。たとえば、Server-0 という名前の ServerMBean
インタフェースの場合、Administration Console は Server-0 MBean のデータを行 Bean に設定します。Administration Console は Server-0 の JMX オブジェクト名を新しい Handle
オブジェクト (com.bea.console.handles.JMXHandle
型) に渡して、行 Bean の handle
プロパティの値として Handle
オブジェクトを設定します (図 7-3 を参照)。ユーザがテーブル JSP 内のリンクをクリックすると、Struts コントローラは行 Bean の handle
プロパティを確認し、handle
値を使用してどのサーバ インスタンスが選択されたのかを判断して、選択されたサーバのコンフィグレーション ページを表示します。
ActionForm
Bean または行 Bean の基底のデータ ソースが MBean である場合は、com.bea.console.handles.JMXHandle
オブジェクトを使用できます。『Administration Console API Reference』の「JMXHandle
」を参照してください。
Bean の基底のデータ ソースが MBean でない場合は、com.bea.console.handles.Handle
インタフェースを実装する独自の Java クラスを作成できます。『Administration Console API Reference』の「Handle
」を参照してください。
Administration Console では、HTML フォームやテーブルを表示し、それらにデータを入力するために、Java Bean からデータをロードする JSP タグを使用します。通常、これらの Bean には、Struts Action
が WebLogic Server MBean からロードしたデータが格納されます。ユーザ入力を送信する場合、JSP タグは Struts Action
に転送します。転送されたほとんどの Action
は WebLogic Server MBean のデータを更新します。
Administration Console の JSP タグを使用する場合は、独自の Struts ActionForm
および Action
を作成する必要があります。
以下の節では、フォームやテーブルで使用するために Java Bean、Struts Action
および ActionForm
を作成する方法について説明します。
Apache Struts については、「The Apache Struts Web Application Framework」(http://struts.apache.org/) を参照してください。
ビジネス レイヤとプレゼンテーション レイヤの JSP との間でデータを渡すための Struts 情報を作成するには、次の手順に従います。
ユーザ入力が可能なフォームの場合は、ユーザがフォームからポストするデータを処理するために別の Action
クラスを作成します。
「フォーム データを処理するための Struts Action クラスの作成」を参照してください。
「Struts ActionForm および Action マッピングのコンフィグレーション」を参照してください。
フォーム データを処理する Struts Action
クラスを作成するには、次の手順に従います。
org.apache.struts.action.Action
クラスを作成します (コード リスト 7-1 を参照)。Struts コントローラは Action
クラスに空の ActionForm
Bean を渡します。Bean にデータを設定するには、次のメソッドを実装します。Action.execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
たとえば、name
と totalRx
という 2 つのプロパティを定義している場合は、次のようになります。
DynaActionForm form = (DynaActionForm) actionForm;
form.set("name",namefromMBean);
form.set("totalRx",totalRxfromMBean);
handle
プロパティの値を設定します (「ActionForm と行 Bean のハンドル」を参照してください)。たとえば、基底のデータ ソースが MBean である場合は、JMXHandle
を使用し、handle
プロパティを MBean の ObjectName
に設定します。
ObjectName anMBean = new
com.bea.medrec:Type=com.bea.medrec.controller.
ObjectName("
RecordSessionEJBMBean,Name=MedRecEAR");
form.setHandle(new JMXHandle(anMBean));
httpServletRequest.setAttribute("
form-bean-name", form);
form-bean-name は Struts コンフィグレーション ファイルでフォーム Bean に対してコンフィグレーションした名前に相当します (「Struts ActionForm および Action マッピングのコンフィグレーション」を参照してください)。
ユーザが (HTML ボタンをクリックして) フォームからデータをポストすると、Struts コントローラはデータが設定された ActionForm
Bean を Action
クラスに渡します。データを処理するには、次のメソッドを実装します。Action.execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
たとえば、name
、totalRx
、および handle
というプロパティを処理する場合は、次のようになります。
DynaActionForm form = (DynaActionForm) actionForm;
String nameValue = (String) form.get(namefromMBean);
Integer totalValue = (Integer) form.get(totalRxfromMBean);
JMXHandle handle = (JMXHandle) form.get(handle);
たとえば、name
および totalRx
プロパティが MBean の属性を表しており、この MBean 属性の値を変更する場合は、handle
プロパティを使用して MBean インスタンスの JMX オブジェクト名を取得し、次に JMX API を使用して MBean 属性にフォームからポストされた値を設定します。
ObjectName oName = handle.getObjectName();
MBeanServer.setAttribute(oName, new Attribute(("Name", nameValue));
MBeanServer.setAttribute(oName, new Attribute(("TotalRx", totalValue));
コード リスト 7-1 は、カスタム MBean にアクセスし、その MBean を使用してフォーム Bean にデータを設定する org.apache.struts.action.Action
クラスの例です。
コード リスト 7-1 例 : フォーム Bean にデータを設定する Action クラス
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.MalformedObjectNameException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class MedRecMBeanFormAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws Exception {
try {
// 実行時 MBean サーバへのローカル接続を確立する
InitialContext ctx = new InitialContext();
MBeanServer server =
(MBeanServer) ctx.lookup("java:comp/env/jmx/runtime");
// 実行時 MBean サーバに登録されたカスタム MBean に対応する
// ObjectName を作成する
ObjectName anMBean = new ObjectName(
"com.bea.medrec:Type=com.bea.medrec.controller.
RecordSessionEJBMBean,Name=MedRecEAR");
// カスタム MBean の「Name」属性の値を取得する
String namefromMBean = (String)server.getAttribute
(anMBean, "Name");
// カスタム MBean の「TotalRx」属性の値を取得する
Integer totalRxfromMBean = (Integer) server.getAttribute
(anMBean, "TotalRx");
// フォーム Bean にデータを設定する
DynaActionForm form = (DynaActionForm) actionForm;
form.set("name",namefromMBean);
form.set("totalRx",totalRxfromMBean);form.set(
"handle
",(new JMXHandle(anMBean)));
// フォーム Bean をリクエスト内に設定する。フォーム Bean の
// 名前は Struts コンフィグレーション ファイルの「form-bean」名に
// 一致しなければならない
httpServletRequest.setAttribute("medrecMBeanEJBForm", form);
} catch (Exception ex) {
ex.printStackTrace();
}
return actionMapping.findForward("success");
}
}
ActionForm
と Action
マッピングを宣言する Struts コンフィグレーション ファイルを作成するには、次の手順に従います。
コンフィグレーション ファイルをまだ作成していない場合は、root-dir
/WEB-INF
にテキスト ファイルを作成します (「拡張のディレクトリ ツリーの作成」を参照してください)。ファイル名は struts-auto-config-
module
.xml
にします。
module
は、Struts モジュールに付けた名前です。名前の衝突を避けるため、会社名を使用することをお勧めします。デフォルトの Struts モジュールは BEA Action および ActionForm 用に予約されているため、独自の Struts モジュールを作成する必要があります。Struts モジュールの詳細については、Apache Struts の『User Guide』(http://struts.apache.org/struts-doc-1.2.x/userGuide/index.html) を参照してください。
DynaActionForm
Bean のこのインスタンスに割り当てるユニークな名前です。Action
クラスは、Bean にデータを設定して Struts コントローラに返すときに、この Bean 名を参照します。Action
マッピングをコンフィグレーションするには、Bean をシリアライズして、HTTP リクエストに格納し、そのリクエストを JSP に転送します。コード リスト 7-2 の以下の値を置き換えます。Action
マッピングに割り当てるユニークな名前。.portlet
ファイルはこの Action
名を参照します。コード リスト 7-2 Struts コンフィグレーション ファイルのテンプレート
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="form-bean-name"
type="org.apache.struts.action.DynaActionForm">
<form-property name="handle" type="com.bea.console.handles.Handle"/>
<!-- insert additional "form-property" elements here -->
</form-bean>
</form-beans>
<action-mappings>
<action path="/action-name"
type="custom-Action-class"
name="form-bean-name"
scope="request"
validate="false">
<forward name="success" contextRelative="true"
path="/ext_jsp/form-jsp.jsp"/>
</action>
<!-- insert additional "action" elements here -->
</action-mappings>
<message-resources parameter="global"/>
<message-resources parameter="validationmessages" key="VALIDATIONMESSAGES"/>
<message-resources parameter="genresources" key="GENRESOURCES"/>
<message-resources parameter="global" key="GLOBAL"/>
</struts-config>
WebLogic Server <wl:table>
JSP タグを使用する JSP 用の Java 行 Bean、Struts Action
、および ActionForm
を作成するには、次の手順に従います。
コンフィグレーション ファイルをまだ作成していない場合は、root-dir
/WEB-INF
にテキスト ファイルを作成します (「拡張のディレクトリ ツリーの作成」を参照してください)。ファイル名は struts-auto-config-
module
.xml
にします。
module
は、Struts モジュールに付けた名前です。名前の衝突を避けるため、会社名を使用することをお勧めします。デフォルトの Struts モジュールは BEA Action および ActionForm 用に予約されているため、独自の Struts モジュールを作成する必要があります。Struts モジュールの詳細については、Apache Struts の『User Guide』(http://struts.apache.org/userGuide/index.html) を参照してください。
Action
マッピングをコンフィグレーションするには、Bean をシリアライズして、HTTP リクエストに格納し、そのリクエストを JSP に転送します。コード リスト 7-2 の以下の値を置き換えます。Action
マッピングに割り当てるユニークな名前。.portlet
ファイルはこの Action
名を参照します。org.apache.struts.action.Action
クラスを作成します (コード リスト 7-3 を参照)。Bean にデータを設定するには、次のメソッドを実装します。Action.execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
httpServletRequest.setAttribute("
table-bean-name", table);
table-bean-name は Struts コンフィグレーション ファイルでテーブル Bean に対してコンフィグレーションした名前です (コード リスト 7-2 を参照)。
コード リスト 7-3 例 : 行 Bean とテーブル Bean にデータを設定する Action クラス
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.MalformedObjectNameException;
import javax.naming.InitialContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class RetrieveCustomMBeansAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws Exception {
try {
// 実行時 MBean サーバへのローカル接続を確立する
InitialContext ctx = new InitialContext();
MBeanServer server =
(MBeanServer) ctx.lookup("java:comp/env/jmx/runtime");
// すべての MedRec EJB MBean の名前パターンを作成する
ObjectName namepattern = new
ObjectName("com.bea.medrec:Type=com.bea.medrec.controller.
RecordSessionEJBMBean,*");
// すべてのアプリケーションのすべての MedRec EJB MBean を取得する
Set objects = server.queryNames(namepattern, null);
// これらの各 MBean を処理して、オブジェクト名と
// TotalRX 属性の値を取得する
Iterator i = objects.iterator();
while (i.hasNext()) {
ObjectName anMBean = (ObjectName) i.next();
String identifier = anMBean.toString();
Integer totalRxfromMBean =
(Integer) server.getAttribute(anMBean, "TotalRx");
// 行 Bean をインスタンス化する
MedRecMBeanTableBean row = new MedRecMBeanTableBean(anMBean);
// 行 Bean のプロパティを設定する
row.setCanonicalName(anMBean.getCanonicalName());
row.setTotalRxinTableBean(totalRxfromMBean);
// 各行 Bean を ArrayList に追加する
result.add(row);
}
} catch (Exception ex) {
ex.printStackTrace();
}
// テーブル Bean をインスタンス化する
DynaActionForm form = (DynaActionForm) actionForm;
// 行 Bean の配列をテーブル Bean の「contents」プロパティの値として
// 設定する
form.set("contents",result);
// テーブル Bean をリクエスト内に設定する。テーブル Bean の
// 名前は Struts コンフィグレーション ファイルの「form-bean」名に
// 一致しなければならない
httpServletRequest.setAttribute("genericTableForm", form);
return actionMapping.findForward("success");
}
}
Administration Console JSP 内のほとんどのポートレットは、tableBaseLayout_netui
および configBaseLayout_netui
テンプレートをベースにしています。
以下の節では、これらのテンプレートを使用して JSP を作成する方法について説明します。
表 7-2 では、Administration Console の拡張で使用できる JSP テンプレートについて説明します。すべてのテンプレートは、Administration Console の WEB-INF
ディレクトリ内にある /layouts
ディレクトリに格納されています。WebLogic Server ではテンプレート自体は公開されていませんが、テンプレートの使用方法については「BEA テンプレートと JSP タグの使用」で説明します。
テンプレートがニーズに合わない場合は、独自のテンプレートを作成し、JSP 内に直接コンテンツを構造化できます。
|
|
|
|
|
フォーム JSP を作成する前に、ビジネス レイヤと JSP の間でデータを渡す Struts 情報を作成します。「フォーム JSP の Struts 情報の作成 : 主な手順」を参照してください。
フォーム JSP を作成するには、次の手順に従います (コード リスト 7-4 を参照)。
root-dir
/jsp
を作成します。root-dir
は開発用のディレクトリです。詳細については、「開発環境の設定」を参照してください。<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl-extension" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
これらのタグ ライブラリについては、「JSP タグ ライブラリ」を参照してください。
<beehive-template:template templatePage="/layouts/configBaseLayoutNoTransact.jsp">
このタグはまだ閉じないでください。フォーム JSP の他の JSP タグは、すべてのこのテンプレート タグ内にネストします。
注意 : フォームで WebLogic Server MBean の属性を変更する場合は、代わりに configBaseLayout_netui.jsp
テンプレートを使用してください。「JSP タグ ライブラリ」を参照してください。
<beehive-template:section name="configAreaIntroduction">
タグを作成します。このタグの中に、フォームの概要を説明する文章を入力します。この説明は、フォームの上に表示されます。action
。(省略可能) フォームがユーザ入力を受け付ける場合は、ユーザがこのフォームを送信するときに呼び出される Struts Action
のパスを指定します。Action
のパスを定義する Struts モジュールは、リクエスト内で指定されます。bundle
。(省略可能) 列の見出しのローカライズ名を含むメッセージ バンドルの名前を指定します。readOnly
。(省略可能) このフォームを読み取り専用にする (たとえば、読み取り専用のモニタ データを表示する) 場合は「true」を指定します。<wl-extension>
タグを作成します (『WebLogic Server 9.1 JSP Tags Reference』を参照してください)。<wl-extension:checkbox>
<wl-extension:chooser-tag>
<wl-extension:hidden>
<wl-extension:password>
<wl-extension:radio>
<wl-extension:select>
<wl-extension:text>
<wl-extension:text-area>
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl-extension" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld"
prefix="beehive-template" %>
<fmt:setBundle basename="mycompany" var="current_bundle" scope="page"/>
<beehive-template:template templatePage="/layouts/configBaseLayoutNoTransact.jsp
">
<beehive-template:section name="configAreaIntroduction">
<fmt:message key="mycompany.myresource.introduction"
bundle="${current_bundle}"/>
</beehive-template:section>
<beehive-template:section name="form">
<html:xhtml/>
<wl-extension:template name="/WEB-INF/templates/form.xml">
<wl-extension:form action="/MyCompanyMyResourceUpdated" bundle="core">
<wl-extension:text property="MyResourceName"
labelId="mycompany.myresource.name.label"
inlineHelpId="mycompany.myresource.name.label.inlinehelp"
singlechange="false"/>
<wl-extension:select
property="MyResourceWidgets"
labelId="mycompany.myresource.widgets.label"
inlineHelpId="mycompany.myresource.widgets.label.inlinehelp"
singlechange="false">
<wl-extension:optionsCollection
property="MyResourceAvailableWidgets"
label="label" value="value"/>
</wl-extension:select>
</wl-extension:form>
</wl-extension:template>
</beehive-template:section>
</beehive-template:template>
テーブル JSP を作成する前に、ビジネス レイヤと JSP の間でデータを渡す Struts 情報を作成します。「テーブル JSP の Struts 情報の作成」を参照してください。
リソースをモニタするためのテーブル JSP を作成するには、次の手順に従います (コード リスト 7-5 を参照)。
root-dir
/jsp
を作成します。root-dir
は開発用のディレクトリです。詳細については、「開発環境の設定」を参照してください。<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl-extension" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
これらのタグ ライブラリについては、「JSP タグ ライブラリ」を参照してください。
<beehive-template:template
templatePage="/layouts/tableBaseLayout_netui.jsp">
このタグはまだ閉じないでください。テーブル JSP の他の JSP タグは、すべてのこのテンプレート タグ内にネストします。
<beehive-template:section name="configAreaIntroduction">
タグを作成します。このタグの中に、テーブルの概要を説明する文章を入力します。この説明は、テーブルの上に表示されます。
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/console-html.tld" prefix="wl" %>
<%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/beehive-netui-tags-template.tld" prefix="beehive-template" %>
<fmt:setBundle basename="core" var="current_bundle" scope="page"/>
<beehive-template:template templatePage="/layouts/tableBaseLayout_netui.jsp">
<beehive-template:section name="configAreaIntroduction">
<fmt:message key="core.server.servertable.introduction"
bundle="${current_bundle}"/>
</beehive-template:section>
<beehive-template:section name="table">
<wl-extension:table name="extensionForm"
property="contents"
captionEnabled="true"
bundle="core">
<wl-extension:caption>
<fmt:message key="server.table.caption"
bundle="${current_bundle}"/>
</wl-extension:caption>
<wl-extension:column property="name"
label="server.table.label.name"/>
<wl-extension:column property="clusterName"
label="server.table.label.cluster"/>
<wl-extension:column property="machineName"
label="server.table.label.machine"/>
</wl-extension:table>
</beehive-template:section>
</beehive-template:template>
テーブル JSP では、各行からコンフィグレーション ページまたは他の関連ページへのリンクを提供できます。リンクのメカニズムでは Handle
オブジェクトを使用して、特定のテーブル行に関連しているページを判断します (「ActionForm と行 Bean のハンドル」を参照してください)。
以下のいずれかの JSP タグを使用して、テーブルからリンクさせることができます。
<wl:column-link>
。リンク先のページとポートレット インスタンスのラベルを指定する必要があります。ハンドルによって、ポートレットは選択された特定の行に関連するデータを表示します。<wl:column-dispatch>
。メタデータを使用して、表示するページとポートレットを決定します。ページとポートレットのラベルを指定する代わりに、ページ宣言にメタデータ タグを追加し、メタデータ値を <wl:column-dispatch>
タグに指定します。メタデータを使用すると、リンクを損わずにページ ラベルを変更することができます。ハンドルも使用され、ページ内のポートレットは選択された特定の行に関連するデータを表示します。この章では、ナビゲーション用のテーブル カラムの作成方法について説明します。
handle
プロパティを作成してデータを設定するには、次の手順に従います。
public com.bea.console.handles.Handle getHandle() {
return handle;
}
public void setHandle(Handle handle) {
this.handle = handle;
}
行 Bean に MBean のデータを設定する場合は、その MBean の JMX ObjectName
を格納する com.bea.console.handles.JMXHandle
オブジェクトを作成します。次に、JMXHandle
オブジェクトを handle
プロパティの値として設定します。
javax.management.ObjectName anMBean = new
com.bea.medrec:Type=com.bea.medrec.controller.
ObjectName("
RecordSessionEJBMBean,Name=MedRecEAR");
row.setHandle(new JMXHandle(anMBean));
その他の種類のデータ ソースのデータを行 Bean に設定する場合は、ObjectName
ではなくコンストラクタに String
を渡すことで、JMXHandle
オブジェクトを作成できます。String
には Type=
identifier
という文字シーケンスを含める必要があります。identifier
は分かりやすいものにします。
row.setHandle(new JMXHandle("Type=myDataSource"));
Handle
オブジェクトを作成して設定することもできます。『Administration Console API Reference』の「Handle
」を参照してください。
<wl:column-link>
タグを使用するには、次の手順に従います。
<wl:column-link portlet="
portlet-instanceLabel">
page-definitionLabel
<render:pageUrl pageLabel=""/>
</wl:column-link>
次に例を示します。<wl:column property="Name"
label="medrecMBean.name.label">
<wl:column-link portlet="medrecMonitorTabPortlet">
<render:pageUrl pageLabel="medrecMonitor"/>
</wl:column-link>
</wl:column>
注意 : <render:pageUrl/>
タグは、ポータル フレームワーク URL を生成するためのコンビニエンス タグです。WebLogic Workshop ヘルプの「<render:pageUrl>
Tag」を参照してください。
<wl:column-dispatch>
タグを使用するには、次の手順に従います。
<wl:column-dispatch>
タグの perspective
属性で指定する値と一致する必要があります。たとえば、myCompany-configuration-page
と指定します。Handle
オブジェクトの ObjectType
プロパティの値。『Administration Console API Reference』の「Handle.getObjectType()
」を参照してください。<wl:table>
タグを使用して作成するテーブルには、単独で、またはチェック ボックスやラジオ ボタンのカラムと組み合わせて、ボタンを使用できます。
単独で使用する場合、ボタンはページ UI コントロールへの転送を行えます。たとえば、WebLogic Server の [サーバ] テーブルでは (図 7-2 を参照)、ユーザが [新規作成] ボタンをクリックすると、[新しいサーバの作成] アシスタントが開きます。
チェック ボックスと組み合わせて使用する場合、ボタンは 1 つまたは複数のテーブル行のためにデータを処理できます。たとえば、テーブル内の各行が、アプリケーションのモニタ データを提供するカスタム MBean のインスタンスを表す場合、1 つまたは複数の行のチェック ボックスを選択してボタンをクリックすると、対応する MBean インスタンスの値がリセットされるようにすることができます。
以下の節では、チェック ボックスとボタンをテーブルに追加する方法について説明します。
singlechange="false"
controlsenabled="true"
controlsenabled
属性を使用すると、テーブルにボタンを表示できるようになります。singlechange
属性は、ユーザがドメインのコンフィグレーションをロックせずにボタンをクリックできるようにします (『WebLogic Server 9.1 JSP Tags Reference』を参照してください)。
<wl:button-bar>
button-label
<wl:button-bar-button labelid=""
page-definitionLabel
pageLabel=""/>
</wl:button-bar>
1 つまたは複数のテーブル行のデータを処理するには、チェック ボックスと、HTTP リクエストにデータをポストするためのボタンを使用します。ポストされたデータを取得して処理できる Struts Action
またはページ フローを作成する必要もあります。
このプロパティのデータ型はプリミティブ型の配列か com.bea.console.handles.Handle
の配列にする必要があります。
<wls:table>
タグでは、ユーザがテーブルを送信するときに、選択された各チェック ボックスごとに 1 つの要素をこの配列に追加します。
次に例を示します。<form-property name="chosenContents"
type="[Lcom.bea.console.handles.Handle;"/>
singlechange="false"
property-name
controlsenabled="true"
showcheckboxes="true"
checkBoxValue=""
property-name は行 Bean のプロパティの名前です。このプロパティのデータ型は、chosenContents
プロパティに対して宣言したデータ型と一致する必要があります。
<wl:table>
タグでは、この行 Bean の値を、テーブル Bean の chosenContents
プロパティの配列に追加します。
ラジオ ボタン (ユーザは 1 つの行のみを選択できる) を表示する場合は、次の属性を追加します。
<wl:button-bar>
button-label
<wl:button-bar-button labelid=""
portlet-instanceLabel
portlet=""
page-definitionLabel
pageLabel=""/>
</wl:button-bar>
button-label。ボタン上に表示するテキスト、または、JSP の <fmt:setBundle>
要素で宣言されたバンドルで定義されているプロパティの名前です。
portlet-instanceLabel。ユーザがボタンをクリックしたときに起動する Struts Action または Beehive ページ フローを含むポートレット インスタンスのラベルです。ラベルは <netuix:portletInstance>
要素の instanceLabel
属性で定義されています。この要素はポートレットが含まれるページの .pinc
ファイルにあります。
Action
またはページ フローをすぐに起動する代わりに、JSP を含むポートレットを指定することができます。JSP では、Action
またはページ フローを起動する前に、ユーザに確認を求めることができます。
page-definitionLabel。転送先のポートレット インスタンスが含まれているページのユニークなラベルです。
ラベルは <netuix:page>
要素の definitionLabel
属性で定義されています。この要素はページの .pinc
ファイルにあります。
<netuix:portletInstance markupType="Portlet"
instanceLabel="medrecMonitor.Tab.Portlet
"
contentUri="/portlets/medrec_monitor_tab.portlet"/>
ポートレットの作成の詳細については、「ポートレットの定義」を参照してください。
chosenContents
というプロパティを含む ActionForm
Bean を定義します。このプロパティのデータ型は、手順 1a で指定したデータ型と同じにする必要があります。以下の手順では、テーブル行と基底の MBean データ ソースを関連付けて、その MBean の属性の値を消去するテーブルについて説明します。
<wl-extension:table>
タグをコンフィグレーションします。ある行のチェック ボックスをユーザが選択すると、その行 Bean の handle
プロパティの値がリクエスト オブジェクトにポストされることを指定します。<wl-extension:table
showcheckboxes="true"
checkBoxValue="handle"
...
>
行 Bean の handle
プロパティは JMXHandle
オブジェクトを格納します。このオブジェクトには、その行にデータが入力された MBean インスタンスの ObjectName
が含まれています。
JMXHandle
オブジェクトを、テーブル Bean の chosenContents
プロパティ内の配列に追加します。次に、テーブル Bean をポストします (図 7-4 を参照)。<wl:table>
タグに属性を 1 つ追加すると、テーブルに表示されるテーブル カラムをユーザがコンフィグレーションできるようになります。Administration Console では、各ユーザのプリファレンスや、テーブルを表示するポートレットの各インスタンスのプリファレンスを永続化します。複数のポートレット インスタンスで 1 つのテーブルを再利用する場合、各ユーザは各ポートレット インスタンスのテーブルごとに異なるプリファレンスを設定できます。
テーブルに表示されるテーブル カラムのセットをユーザがコンフィグレーションできるようにするには、<wl:table>
タグに customize="true"
という属性を追加します。
<wl-extension:table
customize="true"
...
>
Administration Console がこのテーブルを含む JSP を表示する場合、テーブル タイトルの上に [このテーブルのカスタマイズ] リンクが表示されます。このリンクがある場合、テーブル JSP は選択コントロールと [適用] または [リセット] ボタンを含むセクションを表示します。
ポートレットをデスクトップに直接追加することもできますが、ポートレットを ContentBook
内のタブやサブタブとして表示する場合は、それを格納するブックまたはページを定義する必要があります。また、netuix-extension.xml
ファイルを作成する必要もあります。このファイルは、ポートレット、ブック、およびページの位置を指定し、拡張のデプロイメント記述子として機能します。
「ポートレットとナビゲーション コントロールの追加」を参照してください。
![]() ![]() |
![]() |
![]() |