ビジネス・コンポーネント・フォームのInputデータ・タグについて

ビジネス・コンポーネント・フォームのInputデータ・タグは、次の3つのグループに分けられます。

レンダリングされたコントロールをビュー・オブジェクトの特定の属性にバインドするため、各Inputデータ・タグには共通して次のタグ属性があります。

重要: Inputデータ・タグdatasourceおよびdataitemに対して指定する値は、大/小文字が区別されます。JSPのランタイム例外を回避するには、ビュー・オブジェクトおよび属性の名前を、ビジネス・コンポーネント・プロジェクトで表示されているものと完全に一致させてください。

ユーザーが1つの属性の値から複数の値を選択できるフォームを作成する場合、送信JSPページには、複数のHTTPリクエスト・パラメータを処理するJSPスクリプトレット・コードが含まれる必要があります。この問題については、後述の「選択入力」の冒頭で説明しています。

UIコントロールに相当する機能

JDeveloperビジネス・コンポーネントのデータ・タグ・ライブラリで提供されているビジネス・コンポーネントのInputデータ・タグにより、新規または既存の行のデータに対して機能する様々なUIコントロールがレンダリングされます。<jbo:InputXxx... />データ・タグで指定されるInputアクションは、次の代表的なUIコントロールに相当します。

コントロール・タイプ ビジネス・コンポーネントのデータ・タグ
基本的なテキスト入力

<jbo:InputText .../>

複数行テキスト入力領域

<jbo:InputTextArea .../>

単一選択コンボボックス

<jbo:InputSelect multiple = no ... />

複数選択コンボボックス

<jbo:InputSelect multiple = yes .../>

値リスト選択入力

<jbo:InputSelectLOV .../>

単一選択ラジオ・ボタン・グループ

<jbo:InputSelectGroup> multiple = no .../>

複数選択チェックボックス・グループ

<jbo:InputSelectGroup multiple = yes .../>

日付選択入力

<jbo:InputDate .../>

パスワード入力

<jbo:InputPassword .../>

非表示入力

<jbo:InputHidden .../>

InputRender入力

<jbo: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フォーム要素に依存している場合、ビュー・オブジェクトが提供するデフォルトのサイズ変更、書式設定およびデータ検証(提供の可能性あり)といったメリットが失われます。

基本的なテキスト入力

レンダリングされたこれらのコントロールには、特定の属性の現在値が表示され、ユーザーが値を編集できます。送信されると、更新された値が指定の属性に割り当てられます。

選択入力

これらのコントロールでは、データベースから問い合せた選択肢のリストからユーザーが選択できます。これらのコントロールは、選択リストを表示するビュー・オブジェクトおよび更新を受け取るビュー・オブジェクト、計2つの異なるビュー・オブジェクトに依存しています。いくつかの選択入力タグが、単一選択リスト(multiple="no")と複数選択リスト(multiple="yes")のどちらを指定するかに応じて異なったレンダリングとなります。

重要: 選択入力タグに対してmultiple="yes"を指定した場合、送信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つの異なるビュー・オブジェクトを使用した属性の相互作用を示します。

データソース間の属性の相互作用

ユーザーが選択した結果実行される更新は、次の順序をたどります。

  1. 挿入JSPページに、<jbo:InputSelect ...>データ・タグを使用したドロップダウン・リストがレンダリングされます。レンダリングされたコントロールには、DisplayDataSourceのDisplayDataItem(Name)属性を使用して従業員名が表示されます。
  2. ユーザーがリストから従業員名を選択します。
  3. ユーザーが「送信」をクリックします。
  4. 挿入JSPページにおいて、DisplayValueDataItem(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>

指定されたビュー・オブジェクトでは、フォームがHTTPパラメータの名/値ペアとして渡すデータが<SELECT>要素に対して提供されるだけです。

特殊入力

これらのコントロールには、日付選択を可能にしたり、パスワード入力を受け入れるなどの特殊な目的があります。


ビジネス・コンポーネント・データ・タグを使用した行の編集について
ビジネス・コンポーネント・データ・タグを使用した行の作成について

ビジネス・コンポーネント・データ・タグを使用した行の更新