PGBox
P
G
Box

nested rootタグ

nestedタグのメニューへ戻る



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

ネスト状態を指定されたbeanに設定しなおします。


属性必須意味
nameネストの親となるbean名を指定する。



例えば、以下のようなフォームとbeanが定義されているとします。
SampleForm.java
public class SampleForm extends ActionForm {

    private String prop1;
    
    private SampleItem sampleItem;
    
    ※ 以下setter, getter
}

SampleItem.java
public class SampleItem {

    private String prop2;

    private String prop3;
    
    ※ 以下setter, getter
}

アクションでは以下のように、上記のフォームに対して値をセットします。
public class SampleAction extends Action {
    
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form0, ...
        SampleForm form = (SampleForm) form0;
        
        form.setProp1("AAA");
        
        SampleItem sampleItem = new SampleItem();
        sampleItem.setProp2("BBB");
        sampleItem.setProp3("CCC");
        
        form.setSampleItem(sampleItem);
        
        return mapping.findForward("success");
    }
    
}

JSPでは以下のように記述します。
<nested:form action="/sample">
    
    <nested:nest property="sampleItem">            <%-- (1) --%>
        <nested:write property="prop2" />
        <nested:write property="prop3" />
        
        <nested:root name="SampleForm">            <%-- (2) --%>
            <nested:write property="prop1" />    <%-- (3) --%>
        </nested:root>
        
    </nested:nest>
    
</nested:form>

(1) でsampleItemをネストの親としており、囲まれたタグ内の<nested:write>では
SampleItem内のプロパティが参照されますが、(2) でネストの親をSampleFormに設定しなおしていますので
(3) の<nested:write>ではSampleFormのプロパティ「prop1」が出力される事となります。


出力されるhtmlは以下のようになります。(改行やタブは見やすいように調整してあります。)
<form name="SampleForm" method="post" action="/struts-sample/sample.do">

    BBB
    CCC
    
    AAA
    
</form>








nestedタグのメニューへ戻る