エンタープライズ:特集 | 2003/08/01 12:50:00 更新 |
特集:第3回:WebSphereでサーブレットとJSP開発を始める (5/6)
ユーザーインタフェース部分となる入力フォームページを作る
URLにキーワードを入力指定するのではなく、入力フォームを作ってこのページを表示するようにしよう。前回作成したindex.jspを利用することとする。index.jspをダブルクリックして、ページデザイナで編集を始めよう。
1. 文字カーソルをいちばん下まで移動し、メニューから「挿入」−「フォームと入力部品」−「フォーム」を選択する。
2. 属性ビューを表示し、アクションに「EmpResult.jsp」を指定する。
3. 続けて「挿入」−「1行テキスト領域」を選択する。名前に先ほどの「getEmployee_java_lang_String__empno」を指定する。
4. さらに、続けて「挿入」−「送信ボタン」を選択する。ボタンに表示するラベルには「検索」を指定する。
5. 「Ctrl」+「S」キーを押して保存し、J2EEナビゲータビューで右クリックをし、「サーバーで実行」をクリックしよう。
検索条件により一覧表示処理を追加する
次に、全員を表示するための画面を作り、社員番号が入力されなかった際には全員を表示するようにしてみよう。
EmpListのようなBeanを「コンポーネント」と呼ぶことが多い。しかし、このような「機能を提供する」コンポーネントを検索結果を複数表示するようなWebページへ使用する際には、状態を維持するためのBeanをもう一段準備したほうがよい。そうでなければ、メソッドが何回も呼ばれる可能性があるからだ。
以下のBean「EmpScan.java」をyone.servletパッケージを作って追加する。
package yone.servlet; import yone.EmpData; import yone.EmpList; public class EmpScan { String key = null; EmpData[] result = null; public void execute() { --- EmpList list = new EmpList(); result = list.getEmployees(key); System.out.println("key="+key+" Result count:"+result.length); } public String getKey() { return key; } public EmpData[] getResult() { return result; } public void setKey(String key) { this.key = key; } } |
この形式のBeanを作ると、JSPを編集する際に便利なため、覚えておこう。それでは、Beanの検索結果を表示するJSPを以下の手順で作成する。
1. Web Contentの下にScanResult.jspを追加する。
2. 「Ctrl」+「A」キーを押して全選択し、削除キーを押していったんすべて消す。
3. メニューから「JSP」−「Beanの挿入」を選択し、ID「scan」、クラス「yone.servlet.EmpScan」、有効範囲「セッション」でBeanを追加する。
4. 続けてメニューから「JSP」―「スクリプトレットの挿入」を選択する。
5. 属性ビューを表示し(左下にあるはず)、「scan.execute();」を書き込む。
6. JSP画面上に「社員一覧」と入力し、マウスで選択してから「Ctrl」+「1」キーを押して見出しに設定する。
7. メニューから「JSP」−「beanから結果を挿入」を選択し、Beanの選択で「scan:yone.servlet.EmpScan」を選び「次へ」をクリックする。
8. プロパティ及びメソッド結果をいったん「選択なし」ですべて選択を解除し、getResult()およびそのツリー下の「empno」「name」「age」をすべてチェックする。
9. ツリー上でgetReultを選択してレイアウトスタイルを「table」に変更する。ラベルは削除してもよい。
10. empno、name、ageに関してもtalbeに変更する。また、これら3つに関してはラベルの値を日本語に変更する。
11. 実はこのままではコンパイルエラーになる(バグと思われる)。JSPソースを表示して、for……、の部分を見つけだし、getResult()の後ろに続く添字を見つけよう(初めて実行しているならば、[i3]のようになっているはずだ)。
12. 「Ctrl」+「F」キーを押して検索文字に[i3]を指定し、「Alt+A」を押してからすべてを消す。
13. ソース表示のまま「Ctrl」+「S」キーを押して保存する。エラーが表示されなければ成功だ。
14. ScanResult.jspをJ2EEナビゲータで右クリックし、「サーバーで実行」をクリック実行してみよう。
[米持幸寿,ITmedia]