―Servlet/JSPリファレンス―
@ITハイブックス編
2003/11/13
|
ワンポイント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