続Listのinstance属性をsessionにせずにForEachで利用
# 追記
http://s2jsf.seasar.org/ja/example.html#itemsSave
ドキュメントを更新しました。
まず,app.diconにRenderer登録用として以下の記述を追加します.
app.dicon
<component class="org.seasar.teeda.core.render.autoregister.TeedaRendererComponentAutoRegister"> <initMethod name="addReferenceClass"> <arg>@org.seasar.teeda.extension.render.html.HtmlTextRenderer@class</arg> </initMethod> <initMethod name="addClassPattern"> <arg>"org.seasar.teeda.extension.render.html"</arg> <arg>"THtmlItemsSaveHiddenRenderer"</arg> </initMethod> </component>
次に,jsf.diconにTaglib登録として以下の記述を追加します.
jsf.dicon
<initMethod name="addTaglibUri"> <arg>"te"</arg> <arg>"http://www.seasar.org/teeda/extension"</arg> </initMethod>
HTMLに以下の記述を追加します.
<span m:inject="te:inputHidden" m:value="#{hogeDtoList}"/>
hogeDtoListはdiconファイルに以下のように登録されていると仮定します.
※instance属性がrequestになっています
<component name="hogeDtoList" class="java.util.ArrayList" instance="request"> <initMethod name="add" > <arg> <component class="examples.jsf.dto.HogeDto" instance="prototype"> <property name="input">"aaa"</property> </component> </arg> </initMethod> <initMethod name="add"> <arg> <component class="examples.jsf.dto.HogeDto" instance="prototype"> <property name="input">"bbb"</property> </component> </arg> </initMethod> </component>
Action側には,Listのgetterを用意します
/** * @return hogeDtoList */ public List getHogeDtoList() { return hogeDtoList; }
S2JSFのドキュメントにも近々コミットして公開します.