JavaBeans

Revised: 18th/June/2002

JavaBenas というのは、単なるクラス型のオブジェクトに過ぎませんが、プラットフォーム中立な可搬性と、アプリケーションに容易に組み込める再利用可能性を持たせることを目的として、インスタンス化するクラスの設計規約が定義されています。元来は視覚的な部品でしたが、現在ではビジュアル Bean と 非ビジュアル bean に分けられて、広く再利用可能なアプリケーション部品と捉えられています。

JavaBenas の特徴

JSP から bean として利用されるためには、次の二つの特徴を満たしていることが望まれます。

引数のないコンストラクタ

bean はオブジェクトなので、コンストラクタでインスタンス化して作成します。このとき、引数のないコンストラクタが呼ばれます。

引数のないコンストラクタは自動的に作成されますが、引数をもつコンストラクタを明示的に作ると、引数のないコンストラクタは自動的には作られません。自分で引数を持つコンストラクタを実装したときは、引数のないコンストラクタも明示的に実装しなければなりません。

プロパティ

Java Bean はプロパティを持ちます。

プロパティはゲッターとセッターと呼ばれるアクセス用のメソッドでアクセスされる量であり、多くの場合、メンバ変数で実装されます。ゲッターとセッターはメンバ変数の説明で既出ですが、 bean の慣習としておさらいします。

一般の型: private PropertyType foo
Boolean 型: private boolean foo
配列型: private PropertyType[] foo

JSP での bean の作成と利用

JSP では、 bean に限らず、 Java のあらゆるオブジェクトを作成して使用することができます。bean 以外のオブジェクトであれば、スクリプトレットでインスタンス化して適当なスコープの定義済みオブジェクトに格納します。

Java Bean の元になるクラスは、上であげた二つの特徴を満たした上で、自由に記述する事が出来ます。これを JSP でインスタンス化して利用するには、 <jsp:bean > アクションタグを利用します。

<jsp:useBean id="beanName"
	class="fully_qualified_classname" scope="scope"/>

ここで作る bean のプロパティを初期化する必要があれば、 <jsp:setProperty /> アクションタグを利用します。

<jsp:useBean id="beanName"
	class="fully_qualified_classname" scope="scope">
	<jsp:setProperty .../>
</jsp:useBean>

JSP での bean プロパティの設定と取得

プロパティの設定と取得は、アクションタグを使う方法と、スクリプトレットを使う方法があります。

アクションタグによるプロパティの操作

このとき、 jsp:getProperty アクションタグは、指定したプロパティの値を String に変換して、定義済みの暗黙オブジェクト out に挿入します。

スクリプトレットによるプロパティの操作

bean もオブジェクトの一つなので、スクリプトレットでアクセスメソッドを呼び出すことでプロパティを操作できます。

また、文字列に変換したくない場合は、式を使います。

サーブレットによる bean の操作

サーブレットは通常の Java のクラスの一つとして実装するので、同じく通常の Java のクラスの一つとして実装する bean の利用に関して、他の場合と異なるところはありません。

JSP も実行時には、 JSP コンテナによってサーブレットに変換されて実行されます。

ディレクトリ配備

bean の配置は、サーバマシンの CLASSPATH が通っているところからアクセスできれば、どこに配置しても構いません。通常は、ドキュメントルートの /WEB-INF/classes/ 以下に配置することになります。例えば、 sugai.foo.bar.BeanDemo クラスのクラスファイルは、 /WEB-INF/classes/sugai/foo.bar.BeanDemo.class になります。



Copyright © 2002 SUGAI, Manabu. All Rights Reserved.
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送