リファレンストップへ Java | nested rootタグ使用した環境 JDK 6 Update 11 struts 1.3.10 ネスト状態を指定された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> |
|