• 検索結果がありません。

: HTML フ ォームの作成

ドキュメント内 devadapt.book (ページ 185-200)

Java Server Pages

手順 5 : HTML フ ォームの作成

8

設計時

GUI

の開発

コー ド リ ス ト

8-7 confconn.jsp

のコーデ ィ ング 1 <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

2 <form method='POST' action='controller'>

3 <table>

4 <tr>

5 <td><adk:label name='userName' required='true'/></td>

6 <td><adk:text name='userName' maxlength='30' size='8'/></td>

7 </tr>

8 <tr>

9 <td><adk:label name='password' required='true'/></td>

10 <td><adk:password name='password' maxlength='30'size='8'/></td>

11 </tr>

12 <tr>

13 <td colspan='2'><adk:submit name='confconn_submit' doAction='confconn'/></td>

14 </tr>

15 </table>

16 </form>

コー ド リ ス ト 8-7 の内容を以下の節に示し ます。

ADK

タ グ ラ イ ブ ラ リ の イ ン ク ルー ド

ControllerServlet

のポ ス ト

[Form]

フ ィ ール ド の ラベルの表示

テキ ス ト フ ィ ール ド のサ イ ズの表示

フ ォームの [Submit] ボ タ ンの表示

confconn() の実装

ADK タ グ ラ イ ブ ラ リのイ ン クルー ド

コー ド リ ス ト 8-7 の ラ イ ン 1 では、 JSP エンジンに ADK タ グ ラ イ ブ ラ リ を イ ン ク ルー ド する よ う に指定し ています。

<%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

ADK

が提供する タ グ を表 8-3 に示し ます。

手順

5 : HTML

フ ォ ームの作成

アダプ タの開発

8-37

ControllerServlet のポス ト

コー ド リ ス ト 8-7 の ラ イ ン 2 では、 フ ォームが ControllerServlet

にポ ス ト さ

れます。

<form method='POST' action='controller'>

ControllerServletは、 Web アプ リ ケーショ ンに合わせて web.xmlフ ァ イ ルで コ ン フ ィ グ レーシ ョ ン さ れます。 こ れは、RequestHandler

で実行する メ ソ ッ ド

に HTTP 要求を委託し ます。ControllerServletを使用する のに、 いずれの コー ド も指定する必要はあ り ません。 ただ し、 表 8-5 に リ ス ト さ れた初期パ ラ メ ータは指定する必要があ り ます。

8-5 ControllerServlet

の初期パラ メ ータ

パラ メ ータ 説明

MessageBundleBase ア ダプ タ で使用する すべての メ ッ セージバン ド ルに基 本名を指定する 。

ADK

は、 サンプルアダプ タ には常に 論理名を使用す る。 ただ し、 メ ッ セージバン ド ルには 独自の命名規約を選択で き る 。 なお、 こ のプ ロ パテ ィ は、ra.xmlで も 設定で き る。

DisplayPage アプ リ ケーシ ョ ンのページの フ ロ ー と ル ッ ク

&

フ ィ ー ルの両方を コ ン ト ロ ールする

JSP

の名前を指定する 。 サンプルアダプ タ では、 こ のページでdisplay.jspが 表示 さ れ る 。

LogConfigFile ア ダプ タ の

log4j

コ ン フ ィ グ レーシ ョ ン フ ァ イ ルを指定 す る。

RootLogContext ルー ト ロ グの内容を指定する 。 ロ グの内容を利用し て、

プ ロ グ ラ ムの各モジ ュールに従い、 ロ グ メ ッ セージ を カテ ゴ リ 別に分類で き る 。

ADK

では、 特定のア ダプ タ の メ ッ セージがすべて、 特定のカテ ゴ リ 別に分類 さ れ る よ う に、 ルー ト ロ グの内容にアダプ タ の論理名を使 用する 。

RequestHandlerClass ア ダプ タ の要求ハン ド ラ ク ラ ス に完全修飾名を付け る。

サンプルアダプ タ の場合、 こ の値は

sample.web.DesignTimeRequestHandlerであ る。

8

設計時

GUI

の開発

[Form] フ ィ ール ドのラベルの表示

コー ド リ ス ト 8-7 の ラ イ ン 5 では、 フ ォーム中のフ ィ ール ド の ラベルを表示し ま す。

<adk:label name='userName' required='true'/>

表示する値は、 ユーザの メ ッ セージ バン ド ルか ら検索し ます。required属性 は、 ユーザのパ ラ メ ータ指定が必須であ るかど う かを示し ます。

テキス ト フ ィ ール ドのサイズの表示

コー ド リ ス ト 8-7 の ラ イ ン 6 では、 テキ ス ト フ ィ ール ド にサ イ ズ 8、 最大長 30 が設定 さ れます。

<adk:text name='userName' maxlength='30' size='8'/>

フ ォームの [Submit] ボ タ ンの表示

コー ド リ ス ト 8-7 の ラ イ ン 13 では、 アダプ タ ユーザが入力を発行する ための フ ォームにボ タ ンが表示 さ れます。

<adk:submit name='confconn_submit' doAction='confconn'/>

ボ タ ンの ラベルは、confconn_submit を使用し て メ ッ セージ バン ド ルか ら検索 さ れます。 フ ォーム データ を発行する と 、ControllerServletが、 登録済みの リ ク エス ト ハン ド ラ (「RequestHandlerClassプ ロパテ ィ 」 を参照) で confconn メ ソ ッ ド を検索し、 リ ク エス ト データ を リ ク エス ト ハン ド ラ に送 り ま す。

confconn() の実装

AbstractDesignTimeRequestHandlerによ り 、 confconn()メ ソ ッ ド が実装さ れます。 こ の メ ソ ッ ド の実装に よ っ て、 Java Reflection API を利用し て、 アダプ タの ManagedConnectionFactory イ ン ス タ ン スのセ ッ ター メ ソ ッ ド に、 ユーザ が指定し た接続パ ラ メ ータがマ ッ プ さ れます。 アダプ タの

ManagedConnectionFactoryに具象な ク ラ ス を指定する だけで済むよ う にな り ます。 こ の ク ラ ス を指定する には、 次の メ ソ ッ ド を実装し ます。

public Class getManagedConnectionFactoryClass()

手順

5 : HTML

フ ォ ームの作成

アダプ タの開発

8-39

手順 5b : addevent.jsp フ ォームの作成

こ のフ ォーム を使用し てアプ リ ケーショ ン ビ ューに新し い イベン ト を追加でき ます。 こ のフ ォームは EIS 固有の も のです。 コー ド リ ス ト 8-8 はサンプル アダ プ タの addevent.jspフ ォーム を示し ています。

コー ド リ ス ト

8-8 addevent.jsp

フ ォームを作成するサンプルコー ド 1 <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

2 <form method='POST' action='controller'>

3 <table>

4 <tr>

5 <td><adk:label name='password' required='true'/></td>

6 <td><adk:text name='eventName' maxlength='100' size='50'/></td>

7 </tr>

8 <tr>

9 <td colspan='2'><adk:submit name='addevent_submit' doAction='addevent'/></td>

10 </tr>

11 </table>

12 </form>

以下の節に、addevent.jspの内容を説明し ます。

ADK タ グ ラ イ ブラ リのイ ン クルー ド

コー ド リ ス ト 8-8 の ラ イ ン 1 では、 JSP エンジンに ADK タ グ ラ イ ブ ラ リ を イ ン ク ルー ド する よ う に指定し ています。

<%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk'%>

ADK

が提供する タ グ を表 8-3 に示し ます。

ControllerServlet のポス ト

コー ド リ ス ト 8-8 の ラ イ ン 2 では、 フ ォームが ControllerServlet

にポ ス ト さ

れます。

8

設計時

GUI

の開発

<form method='POST' action='controller'>

ControllerServletは、 Web アプ リ ケーショ ンに合わせて web.xml フ ァ イ ルで コ ン フ ィ グ レーショ ン さ れます。 こ れは、RequestHandler

で実行する メ ソ ッ ド

に HTTP 要求を委託し ます。ControllerServlet

を使用するのに、 いずれの

コー ド も指定する必要はあ り ません。 ただ し、 表 8-5 「ControllerServlet パ ラ メ ータ」 に リ ス ト さ れた初期パ ラ メ ータは指定する必要があ り ます。

[Form] フ ィ ール ド ラベルの表示

コー ド リ ス ト 8-8 の ラ イ ン 5 では、 フ ォーム中のフ ィ ール ド の ラベルを表示し ま す。

<adk:label name='eventName' required='true'/>

表示する値は、 ユーザの メ ッ セージ バン ド ルか ら検索し ます。required

属性

は、 ユーザのパ ラ メ ータ指定が必須であ るかど う かを示し ます。

テキス ト フ ィ ール ドのサイズの表示

コー ド リ ス ト 8-8 の ラ イ ン 6 では、 テキ ス ト フ ィ ール ド にサ イ ズ 50、 最大長

100

が設定 さ れます。

<adk:text name='eventName' maxlength='100' size='50'/>

フ ォームの [Submit] ボ タ ンの表示

コー ド リ ス ト 8-8 の ラ イ ン 9 では、 アダプ タ ユーザが入力を発行する ための フ ォームにボ タ ンが表示 さ れます。

<adk:submit name='addevent_submit' doAction='addevent'/>

ボ タ ンの ラベルは、addevent_submit を使用し て メ ッ セージ バン ド ルか ら検索 さ れます。 フ ォーム データ を発行する と 、ControllerServletが、 登録済みの リ ク エス ト ハン ド ラ (「RequestHandlerClassプ ロパテ ィ 」 を参照) で addevent() メ ソ ッ ド を検索し、 リ ク エス ト データ を リ ク エス ト ハン ド ラ に送

り ます。

手順

5 : HTML

フ ォ ームの作成

アダプ タの開発

8-41

フ ィ ール ドの追加

イベン ト を定義する と きに必要 と な る その他のフ ィ ール ド を追加する必要があ り ます。 複数のフ ィ ール ド があ る フ ォームの例については、 附録 E 「DBMS サン プル アダプタ を使用し たアダプ タ開発方法の学習」 を参照し て く だ さ い。

手順 5c : addservc.jsp フ ォームの作成

こ のフ ォーム を使用し て、 アプ リ ケーショ ン ビ ューに新し いサービ ス を追加で き ます。 こ のフ ォームは EIS 固有の も のです。 コー ド リ ス ト 8-9 にサンプル ア ダプ タ の addservc.jsp

フ ォーム を示し ます。

コー ド リ ス ト

8-9 addservc.jsp のコーデ ィ ング

1 <%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

2 <form method='POST' action='controller'>

3 <table>

4 <tr>

5 <td><adk:label name='serviceName' required='true'/></td>

6 <td><adk:text name='serviceName' maxlength='100' size='50'/></td>

7 </tr>

8 <tr>

9 <td colspan='2'><adk:submit name='addservc_submit' doAction='addservc'/></td>

10 </tr>

11 </table>

12 </form>

ADK タ グ ラ イ ブラ リのイ ン クルー ド

コー ド リ ス ト 8-9 の ラ イ ン 1 では、 JSP エンジンに ADK タ グ ラ イ ブ ラ リ を イ ン ク ルー ド する よ う に指定し ています。

<%@ taglib uri='/WEB-INF/taglibs/adk.tld' prefix='adk' %>

タ グ ラ イ ブ ラ リ では、 ADK で提供 さ れる使いやすいフ ォーム検証機能がサポー ト さ れます。 ADK タ グ ラ イ ブ ラ リ には、 表 8-3 に示すタ グが用意さ れています。

8

設計時

GUI

の開発

ControllerServlet のポス ト

コー ド リ ス ト 8-9 の ラ イ ン 2 では、 フ ォームが ControllerServlet

にポス ト さ

れます。

<form method='POST' action='controller'>

ControllerServletは、 Web アプ リ ケーショ ンに合わせて web.xml フ ァ イ ルで コ ン フ ィ グ レーショ ン さ れます。 こ れは、RequestHandler

で実行する メ ソ ッ ド

に HTTP 要求を委託し ます。ControllerServletを使用するのに、 いずれの コー ド も指定する必要はあ り ません。 ただ し、 表 8-5 「ControllerServlet パ ラ メ ータ」 に リ ス ト さ れた初期パ ラ メ ータは指定する必要があ り ます。

[Form] フ ィ ール ド ラベルの表示

コー ド リ ス ト 8-9 の ラ イ ン 5 では、 フ ィ ール ド の ラベルを表示し ます。

<adk:label name='serviceName' required='true'/>

表示する値は、 ユーザの メ ッ セージ バン ド ルか ら検索し ます。required属性 は、 ユーザのパ ラ メ ータ指定が必須であ るかど う かを示し ます。

テキス ト フ ィ ール ドのサイズの表示

コー ド リ ス ト 8-9 の ラ イ ン 6 では、 テキ ス ト フ ィ ール ド にサ イ ズ 50、 最大長

100

が設定 さ れます。

<adk:text name='serviceName' maxlength='100' size='50'/>

フ ォームの [Submit] ボ タ ンの表示

コー ド リ ス ト 8-9 の ラ イ ン 9 では、 アダプ タ ユーザが入力を発行する ための フ ォームにボ タ ンが表示 さ れます。

<adk:submit name='addservc_submit' doAction='addservc'/>

手順

5 : HTML

フ ォ ームの作成

アダプ タの開発

8-43

ボ タ ンの ラベルは、 [addservc_submit

]

を使用し て メ ッ セージ バン ド ルか ら検 索さ れます。 フ ォーム データ を発行する と 、ControllerServletが、 登録済み の リ ク エス ト ハン ド ラ (「RequestHandlerClassプ ロパテ ィ 」 を参照) で addservc メ ソ ッ ド を検索し 、 リ ク エス ト データ をリクエスト ハンドラに送 り ま す。

フ ィ ール ドの追加

サービ ス を定義する と きに必要 と な る その他のフ ィ ール ド を追加する必要があ り ます。 複数フ ィ ール ド のあ る フ ォームの例については、 附録 E 「DBMS サンプ ル アダプ タ を使用し たアダプ タ開発方法の学習」 を参照し て く だ さ い。

手順 5d : イベン ト およびサービスの編集機能の実 装 (省略可能)

設計時にユーザに対し イベン ト やサービ ス を編集する機能を許可する場合は、 ア ダプ タ プ ロパテ ィ を編集し、edtservc.jsp と edtevent.jspのフ ォーム を作成 し て、 具体的な メ ソ ッ ド を実装する必要があ り ます。 こ こ では、 以下の タ ス ク に ついて説明し ます。

注意

:

こ の手順は省略可能です。 ユーザに こ れ ら の機能を提供する必要はあ り ません。

アダプ タ プロパテ ィ フ ァ イルの更新

まず、 アダプ タ プ ロパテ ィ フ ァ イ ルを次の よ う に変更し てサンプル アダプタ に 合わせてシス テ ム プ ロパテ ィ を更新し ます。

以下のプロパテ ィ を追加し ます。

edtservc_title=Edit Service

edtservc_description=On this page, you edit service properties.

edtevent_description=On this page, you edit event properties.edtevent_title=Edit Event

glossary_description=This page provides definitions for commonly used terms.

ドキュメント内 devadapt.book (ページ 185-200)