PGBox
P
G
Box

bean defineタグ

beanタグのメニューへ戻る



使用した環境
JDK 6 Update 11
struts 1.3.10

JSP内で使用可能な変数を定義します。


実際には指定スコープに該当するオブジェクトのsetAttributeメソッドが呼び出され、値がセットされます。

属性必須意味
id定義する変数名を指定。
toScope変数をセットするスコープを指定する。page・request・session・applicationのいずれかを指定。デフォルトはpage
namebeanの値を変数にセットする場合は、そのbean名を指定する。
propertybeanのプロパティの値を取得して変数にセットする場合は、そのbeanのプロパティ名を指定する。
scopebeanの値を変数にセットする場合は、beanを取得するスコープを指定する。page・request・session・applicationのいずれかを指定。省略時は自動的にbeanが存在するスコープが検索される。
type変数の型を明示的に指定する場合にクラス名を指定する。デフォルトはvalueを指定してる場合はjava.lang.String、valueを省略している場合はjava.lang.Object。
value変数にセットする値を直接指定する。



例えば、Formが以下のように定義されており

public class SampleForm extends ActionForm {
    
    private String message;
    
    private Date now;

    private int number;
    
    ※ 以下、setter, getter
}


Actionでは以下のように処理したとします。
public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
    SampleForm form = (SampleForm) form0;
    
    form.setMessage("メッセージ");
    form.setNumber(1234567);
    
    return mapping.findForward("success");
}


以下のようにJSPを記述した場合
<bean:define id="a" value="変数A" />
<bean:define id="message" name="SampleForm" property="message" />
<bean:define id="number" name="SampleForm" property="number" />

<bean:write name="a" /><br />
<bean:write name="message" /><br />
<bean:write name="number" format="###,###,###" /><br />


結果は以下のようになります。
変数A
メッセージ
1,234,567



また、ボディ部の記述もサポートされていますので、
<bean:define id="a">変数A</bean:define>
<bean:define id="message"><bean:write name="SampleForm" property="message" /></bean:define>
といったように、ボディ部の内容を変数値としてセットする事も可能です。



また、スクリプト変数への定義もサポートされていますので、<bean:define>によって定義された
変数は、スクリプトレットにて使用する事も可能です。
<bean:define id="a" value="変数A" />

<%= a %>








beanタグのメニューへ戻る