―Servlet/JSPリファレンス―

@ITハイブックス編
2003/11/13
Javaプログラミング
ワンポイントレクチャーについて

  Beanプロパティの設定


本記事は、@ITハイブックスシリーズ『サン・マイクロシステムズ技術者認定試験「J2EEラーニングブック Web Component Developer for J2EE Platform編」』(技術評論社)から、許可を得て一部を転載したものです。同書籍に関する詳しい情報については、本記事の最後に掲載しています。
   ワンポイントQuestion

 Beanのプロパティに値を設定する書式で、正しいものは次のうちどれですか?(単一選択)


A <jsp:setProperty name="cartBean" property="id" value="10033" />
B <jsp:setProperty property="id" value="10033" />
C <jsp:property name="cartBean" property="id" value=
"10033"/>
D <jsp:useBean name="cartBean" property="id" value=
"10033" />
E <jsp:setProperty id="cartBean" property="id" value=
"10033" />

   解説

 JSPファイル内のJavaBeansコンポーネントにプロパティを設定する方法には、次の2つがあります。

(1)スクリプトレットを使用する方法

 以下の例のように、Beanのsetterメソッドをスクリプトレット内で使用します。

<% beanName.setPropName(value); %>

 なお、beanNameは、<jsp:useBean>タグのid属性に指定されている名前と同じである必要があります。

(2)<jsp:setProperty>タグを使用する方法

 <jsp:setProperty>タグは、<jsp:useBean>タグで取り出したBeanインスタンスの書き込み可能なプロパティに値を設定します。<jsp:setProperty>タグの基本構文は、以下の通りです。

<jsp:setProperty name="参照名"
    property="プロパティ名"
    [[value="値"] | [param="パラメータ名"]]
/>

 構文の内容を以下に解説します。

●name属性

 <jsp:useBean>タグのid属性で指定した名前を指定します。

●property属性

 値を設定したいBeanインスタンスのプロパティ名を指定します。

 property="*"と指定している場合、現在のServletRequestのパラメータから、パラメータ名と値の型がそれぞれプロパティ名とsetterメソッドの型に一致するものを検索し、対応するパラメータ値をメソッドのプロパティに設定します。

●value属性

 property属性で指定したBeanインスタンスのプロパティに設定する値を指定します。また、式を指定することもできます。なお、プロパティの型がintやIntegerの場合、java.lang.Integer.valueOf(String)メソッドを使用して変換されます。

●param属性

 HTTPリクエストでformから送信されてきたパラメータ名を指定します。指定されていない場合は、パラメータ名はプロパティ名と同一と仮定されます。

 JSPファイル内でBeanプロパティの設定例を以下で示します。

 …
<jsp:setProperty name="dvd" property="dvdId" />

 “dvd”の名前を持つBeanを検索し、BeanのdvdIdプロパティにdvdIdリクエストパラメータの値を設定します。

 なお、スクリプトレットでは、以下のように記述できます。

<% dvd.setDvdId(dvdId); %>

 また、以下、式を埋め込んだ例です。

<jsp:setProperty name="dvd" property="dvdPrice" value="<%=price
* 1.05 %>" />

 <jsp:useBean>タグのBodyに<jsp:setProperty>タグを使用することでBeanの初期値を設定することができます。

<jsp:useBean id="dvd" class="beans.dvdBean" >
  <jsp:setProperty name="dvd" property="dvdId" value="T3" />
</jsp:useBean>

POINT
<jsp:setProperty>タグのname属性は、<jsp:useBean>タグのid属性で指定されているものと同じである必要があります。 Beanのプロパティを<jsp:setProperty>タグで設定するには、Bean自身にそのプロパティに対応したsetterメソッドが必要です。 また、<jsp:setProperty>タグのparam属性には、リクエストパラメータ名である必要があります。

KEYWORD
■<jsp:setProperty>タグ
<jsp:useBean>タグで取り出したBeanインスタンスの書き込み可能なプロパティに値を設定します。

   ワンポイントQuestionの解答

正解 A

Java2ラーニングブック −Web Component Developer編−

本記事は@ITハイブックスシリーズ「J2EEラーニングブック −Web Component Developer編−」(技術評論社)から、一部の内容を編集し転載したものです。本書の詳細は「@ITハイブックス」サイトでご覧いただけます。

 

Javaプログラミング・ワンポイントレクチャー INDEX





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間