次に、ラジオ・ボタンからの入力によって、
どちらの検索関数を使用するかを決定するように、JSF ハンドラーを
構成する必要があります。
- ページのブランク領域を右クリックし、メニューで「ページ・コードの編集」をクリックします。 エディター上で、customersearch.egl ファイルが開きます。
- ハンドラーの一番上の変数宣言がある位置に、次のコード行を追加します。
andOr CHAR(3);
次に、この変数をラジオ・ボタンにバインドします。
この変数は、ページ上で選択したラジオ・ボタンに応じて、
値 "AND" または "OR" を保持します。
- NameAndStateSearch_And への関数呼び出しを次のコードで置き換えます。
if (andOr == "AND")
SearchLibrary.NameAndStateSearch_And(
searchTerms.LastName,
searchTerms.State, searchResults);
else
SearchLibrary.NameAndStateSearch_Or(
searchTerms.LastName,
searchTerms.State, searchResults);
end
関数全体は次のコードのようになります。
function searchFunction()
searchTerms.LastName = searchTerms.LastName+"%";
if (andOr == "AND")
SearchLibrary.NameAndStateSearch_And(
searchTerms.LastName,
searchTerms.State, searchResults);
else
SearchLibrary.NameAndStateSearch_Or(
searchTerms.LastName,
searchTerms.State, searchResults);
end
resultMessage = " customer(s) found.";
numberOfResults = searchResults.getSize();
end
これで、この関数は andOr 変数の値に応じて異なる関数を呼び出します。
- ファイルを保管して閉じます。
- customersearch.jsp ページに戻ります。
- ページ・データ・ビューで、ページ上のラジオ・ボタン・グループに
andOr - char(3) 変数をドラッグして、
ラジオ・ボタン・グループにバインドします。
- searchFunction() 関数を、ページ上の「実行」ボタンにバインドします。
- ページを保管します。
- ページのテストを行います。
ページをテストする際には、新しいラジオ・ボタン機能を使用するようにしてください。
ラジオ・ボタンのいずれか一方を選択して、検索ページが正しく動作することを確認する必要があります。
サンプル・データベース内のレコード数が多くないのに対して、
選択肢となる州の数が多くなるため、
この検索ページもまだ使いやすいとは言えません。
次の演習では、「State」入力フィールドをコンボ・ボックスに変更し、
データベースで使用されている有効な州がすべてリストされるようにします。
これで、customersearch.egl ファイルのコードが完成しました。
このファイル内にエラーがある場合 (赤の X 記号でマークされます) は、演習 3 終了後の customersearch.egl ファイルのファイルに記載されているコードと、作成したコードが一致していることを確認してください。