ビジネス・コンポーネント・フォームのInputデータ・タグは、次の3つのグループに分類されます。
レンダリングされたコントロールをビュー・オブジェクトの特定の属性にバインドするためには、各Inputデータ・タグに次の共通タグ属性が必要です。
重要: Inputデータ・タグのDataSourceおよびDataItemに指定する値は、大/小文字の区別があります。 JSPランタイム例外を回避するには、ビュー・オブジェクト名および属性名を、ビジネス・コンポーネント・プロジェクトに表示されるものと正確に一致させます。
1つの属性の値からユーザーが複数選択できるフォームを作成する場合、送信JSPページには、複数のHTTPリクエスト・パラメータを処理するためのJSPスクリプトレット・コードがインクルードされている必要があります。この問題は、後述の「選択入力」のセクションで説明します。
各種UIコントロール
JDeveloperのビジネス・コンポーネント・データ・タグ・ライブラリで提供されるビジネス・コンポーネントInputデータ・タグは、新規または既存の行のデータ上で機能する各種のUIコントロールをレンダリングします。 <jbo:InputXxx.../>
データ・タグにより提供される入力操作は、次の一般的なUIコントロールと同等です。
コントロール・タイプ | ビジネス・コンポーネント・データ・タグ |
---|---|
基本テキスト入力 |
|
複数行テキスト入力領域 |
|
単一選択コンボボックス |
|
複数選択コンボボックス |
|
LOV選択入力 |
|
単一選択ラジオ・ボタン・グループ |
|
複数選択チェック・ボックス・グループ |
|
日付選択入力 |
|
パスワード入力 |
|
非表示入力 |
|
InputRender入力 |
|
JSPが、作成したHTMLフォーム内で<jbo:InputXxx.../>
データ・タグをレンダリングする場合は、コントロールにより生成されるソースHTMLが標準のHTMLフォーム要素として表示されます。たとえば、顧客名の行データを表示するために使用されるInputTextデータ・タグは、名前と値のペアを定義する次の静的HTML入力要素を生成します。
<INPUT TYPE="TEXT" NAME="CUSTNAME" VALUE="John" ROWS="1" SIZE="20" />
<INPUT TYPE="HIDDEN" NAME="_CUSTNAME" VALUE="John" />
<jbo:InputXxx.../>
データ・タグを使用する行の更新と、静的HTMLフォーム要素を使用する行の更新の違いは、ビジネス・コンポーネント・データ・タグではビュー・オブジェクトのデフォルト値を表示できる点です。 さらに、Inputデータ・タグをビュー・オブジェクトにバインドしているため、HTMLフォーム要素を使用すると、そのビュー・オブジェクトで提供されるデフォルトのサイズ設定、書式設定および可能なデータ検証などの利点が失われます。
基本テキスト入力
これらのコントロールは、レンダリングされると特定の属性の現行値を表示し、ユーザーはその値を編集できます。送信されると、更新値を指定した属性に割り当てます。
<jbo:InputText datasource="custDataSource" dataitem="Name" />
この例では、顧客(custDataSource
)ビュー・オブジェクトのName
属性に等しい値により、標準のHTMLテキスト入力が生成されます。 <jbo:InputTextArea datasource="custDataSource" dataitem="Comment" rows="10" cols="20" />
この例では、最高10行、幅20文字の複数行HTMLテキスト入力が生成されます。 データは、顧客(custDataSource
)ビュー・オブジェクトのComment
属性からレンダリングされます。選択入力
これらのコントロールにより、ユーザーはデータベースの選択肢問合せリストから選択できます。これらのコントロールは、2種類の異なるビュー・オブジェクト(選択リストを表示するためのものと、更新を受けるためのもの)に依存します。いくつかの選択入力タグは、単一選択リスト(multiple="false")または複数選択リスト(multiple="true")のいずれを使用可能にするかによって、レンダリングが異なります。
重要: いずれかの選択入力タグにmultiple="true"
を指定した場合、送信JSPページには、複数のHTTPリクエスト・パラメータを処理するためのJSPスクリプトレット・コードがインクルードされている必要があります。 データ入力JSPフォームから値を取得するには、ServletRequest
インタフェースのgetParameterValues()
メソッドを使用します。送信JSPページのビルトインのリクエスト・オブジェクトを次のように使用します。ここで、getParameterValues()
に渡されるStringは、コントロールのdataitem属性の値です。
<% String params[] = request.getParameterValues("MyDataItemValue");
for ( int i=0; i< params.length; i++) out.println(params[i]); %>
選択入力タグには、ユーザーに表示されるもの、および更新されるものを定義する一連の共通属性があります。
次のタグ属性は、可能なユーザーの選択を表示するためにコントロールによって使用されるビュー・オブジェクトおよび属性を識別します。 ビュー・オブジェクトおよび属性の名前には大/小文字の区別があり、ビジネス・コンポーネントの名前と正確に一致する必要があります。
次のタグ属性は、ユーザーが行を編集しているビュー・オブジェクトの行セットを更新するため、コントロールにより処理中のページに渡されるデータを指定します。(ほとんどの場合、ユーザーにはこの値は見えません。)
次のタグ属性は、更新する別のビュー・オブジェクトおよび属性を識別します。識別する属性は、ユーザーが編集する行のものです。
選択入力タグに指定する2つのビュー・オブジェクトは、一意である必要があります。次のダイアグラムは、2つの別々のビュー・オブジェクトを使用する属性の相互作用を示しています。
ユーザーの選択の結果生じる更新は、次の順序で行われます。
<jbo:InputSelect...>
データ・タグを使用してドロップダウン・リストをレンダリングします。レンダリングされたコントロールは、DisplayDataSourceのDisplayDataItem(Name
)属性を使用して従業員名を表示します。
EmpNo
)を名前と値のペアとして使用するHTTPパラメータを送信JSPページ(非表示)に渡し、それによってDataSource内のDataItem(EmpNo
)を更新します。 Inputデータ・タグにより2つのビュー・オブジェクトの名前が指定される際に、コントロールにより生成されたソースHTMLが標準の<SELECT>要素として表示されます。 この例のソースHTMLは次のようになります。
<SELECT NAME="Name" CLASS="vrSelectField" >
<OPTION SELECTED VALUE="Abbey">Abbey <OPTION VALUE="Rose">Rose
<OPTION VALUE="Jones">Jones
</SELECT>
指定されたビュー・オブジェクトは、単に<SELECT>要素に、フォームがHTTPパラメータの名前と値のペアとして渡すデータを提供するにすぎません。
multiple
属性が"true"または"false"のいずれに設定されているかによって、単純な単一選択ドロップダウン・リストまたは複数選択コンボボックスがレンダリングされます。 ただし、multiple="true"
を指定した場合、送信JSPページには、複数のHTTPリクエスト・パラメータを処理するためのJSPスクリプトレット・コードがインクルードされている必要があります。サンプルは、「選択入力」のセクションの導入部を参照してください。 このコントロールの2つのバージョンは、次のようにレンダリングされます。
<jbo:InputSelect multiple="no|yes" datasource="custDataSource"
dataitem="Transhistory"
displaydatasource="transDataSource"
displaydataitem="Tdesc"
displayvaluedataitem="Tcode" />
これらの属性を設定することにより、顧客(custDataSource
)ビュー・オブジェクトをトランザクション説明のリストが含まれる参照ビュー・オブジェクト(transDataSource
)のデータで更新することになります。 トランザクション説明(Tdesc
)はドロップダウン・リストまたはコンボボックスのいずれかに表示され、顧客のトランザクション履歴(Transhistory
)はトランザクションIDコード(Tcode
)により更新されます。multiple
属性が"true"または"false"のいずれに設定されているかによって、単一選択ラジオ・ボタン・グループまたは複数選択チェック・ボックス・グループがレンダリングされます。 ただし、multiple="true"
を指定した場合、送信JSPページには、複数のHTTPリクエスト・パラメータを処理するためのJSPスクリプトレット・コードがインクルードされている必要があります。サンプルは、「選択入力」のセクションの導入部を参照してください。 コントロールの2つのバージョンは、次のようにレンダリングされます。 <jbo:InputSelectGroup multiple="no"
datasource="custDataSource"
dataitem="Custstatus"
displaydatasource="statusDataSource"
displaydataitem="Sname"displayvaluedataitem="Scode" />
この単一選択グループの例では、顧客ビュー・オブジェクト(custDataSource
)を、ステータス・コードが含まれる参照ビュー・オブジェクト(statusDataSource
)のデータにより更新します。 ステータス名(Sname
)はラジオ・ボタン・グループに表示され(multiple
が"false"に選択されているため)、顧客のステータス(Custstatus
)はステータス・コード(Scode
)により更新されます。 <jbo:InputSelectGroup multiple="yes"
datasource="custDataSource"
dataitem="Custshippref"
displaydatasource="shipserviceDataSource"
displaydataitem="SSname"
displayvaluedataitem="SScode" />
この複数選択グループの例では、顧客ビュー・オブジェクト(custDataSource
)を、出荷サービス名が含まれる参照ビュー・オブジェクト(shipserviceDataSource
)のデータにより更新します。 出荷サービス名(SSname
)はチェック・ボックス・グループに表示され(multiple
が"true"に設定されているため)、顧客の出荷方法(Custshippref
)は出荷サービス・コード(SScode
)により更新されます。 <jbo:InputSelectLOV datasource="custDataSource"
dataitem="Custrepname"
displaydatasource="repDataSource"
displaydataitem="Mgr"
displayvaluedataitem="Repname"
formname="form1" />
このサンプルでは、顧客ビュー・オブジェクト(custDataSource
)を、販売員ビュー・オブジェクト(repDataSource
)のデータにより更新します。顧客担当者の管理者(Mgr
)はポップアップLOVに表示され、顧客担当者名(Custrepname
)は販売員名(Repname
)により更新されます。 フォーム名(form1
)は、InputSelectLOVデータ・タグが含まれるHTMLフォーム要素の名前を表します。displayvaluedataitem="Repname"
)属性の値が表示されます。 将来のリリースでは、入力コントロールで表示する値を指定できるようになります。専用入力
これらのコントロールには、日付選択を可能にする、あるいはパスワード入力を受け入れるなどの特定の目的があります。
<jbo:InputDate datasource="empDataSource" dataitem="Hiredate" formname="form1" />
日付を選択すると、入力コントロールにはその日付が表示されます。 フォーム名(form1
)は、InputDateデータ・タグが含まれるHTMLフォーム要素の名前を表します。 <jbo:InputPassword datasource="empDataSource" dataitem="Password" cols="9" />
入力すると、パスワードの値が非表示になります。
ビジネス・コンポーネント・データ・タグを使用した行の編集について
ビジネス・コンポーネント・データ・タグを使用した行の作成について
Copyright © 1997, 2004, Oracle. All rights reserved.