[トライアル版連動企画]
Webアプリケーションの作成が一通り理解できる基礎講座
第4回 エンティティBeanでDBのデータをマッピングする
|
クライアントの開発 |
■JSP Beanを作成する
作成したEJBにアクセスし、製品情報をカテゴリ別に表示するJSPページを作ってみよう。まず、EJBにアクセスするクライアントBeanを作成する。
[ファイル|新規]メニューを選択し、[新規]ページの[JavaBean]を実行する。ウィザードでは、次のように項目を設定する。
項目
|
値 |
パッケージ | pricelist |
クラス名 | CategoryClient |
親クラス | java.lang.Object |
オプション | |
Public | (チェックする) |
デフォルトコンストラクタを生成 | (チェックする) |
main関数の生成 | (チェックしない) |
サンプルプロパティの設定 | (チェックしない) |
ヘッダーコメントの生成 | (チェックしない) |
画面5 JavaBeanウィザード (クリックすると拡大します) |
生成されたクラスに、コードを追加する。前回は、EJBテストクライアントウィザードで、Beanアクセスコードを生成したが、今回は、直接記述してみよう。
まず、import文を記述する。
import javax.naming.*; |
コンストラクタでは、ネーミングサービスにアクセスして、CategoryBeanのホームインターフェイスへの参照を取得する。
private CategoryHome home
= null; public CategoryClient()
{ |
次に、カテゴリの一覧を表示するためのHTMLタグセットを出力するためのメソッドgetCategoryTags()を定義する。このメソッドは、ページを表示するたびに呼び出されるので、最初の呼び出しのときにタグを作成し、保持しておくことにしよう。
String[] categoryTags =
null; public String[] getCategoryTags(String
url) { |
このメソッドで注目すべきところは、home.findAll()を呼び出している個所である。findAll()は、すべてのカテゴリを検索するメソッドだ。結果はEJBへの参照ではなく、java.util.Collectionに格納されて返される。これを取り出しているのが、それ以下のコードだ。実際のオブジェクトへの参照は、narrow()メソッドで取得している。
最後に、指定したカテゴリの製品情報を表示するためのタグセットを返すメソッドgetProductTags()を定義する。カテゴリ番号から、CategoryBeanを取得し、このBeanが持つgetProducts()メソッドを呼び出す。このメソッドは、Beanが表すカテゴリに属するProductBeanを取得する。
public String[] getProductTags(int
cat_no) { |
[プロジェクト|プロジェクトのメイク]を選択し、コンパイルを実行する。
■JSPを作成する
[ファイル|新規]メニューを実行し、[JavaServer Page]を選択する。
項目
|
値 |
パッケージ | pricelist |
名前 | products |
送信フォームの生成 | (チェックしない) |
オプション | |
エラーページの生成 | (チェックしない) |
サンプルBeanの生成 | (チェックしない) |
画面6 JSPウィザード (クリックすると拡大します) |
次のステップへ進み、[Beanの追加]ボタンを押して、作成したBean[productlist.CategoryClient]を追加する。Beanに対する項目は、次のように設定する。
項目
|
値 |
クラス | productlist.CategoryClient |
ID | bean0 |
スコープ | session |
生成されたJSPコードを次のように修正する。
<%@ page contentType="text/html;
charset=Shift_JIS" %> <H3>製品カテゴリー</H3>
|
アプリケーションの実行 |
|
連載記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|