コンボボックスの連携

あるコンボボックスの選択結果によって、次のコンボボックスを動的に変化させたいような場合がある。

seamの場合はa4j:supportタグを利用すると良さそう。

<h:selectOneMenu value=”#{machinesListAction.sectioncd}”>

<s:selectItems value=”#{machinesSections}” var=”sections” label=”#{sections.nameja}” />

<s:convertEntity /> <a4j:support event=”onchange” reRender=”linecd” ajaxSingle=”true” action=”#{machinesListAction.getMachinesSrLine}” />

</h:selectOneMenu>

<h:selectOneMenu value=”#{machinesListAction.linecd}” id=”linecd”>

<s:selectItems value=”#{machinesLines}” var=”lines” label=”#{lines.nameja}” /

<s:convertEntity />

<a4j:support event=”onchange” reRender=”main” action=”#{machinesListAction.getMachinesLists}” />

</h:selectOneMenu>

とっても簡単。 ただし、SessionBean側で@Beginをしておかないと、JSFのライフサイクルエラーが出てうまくいかなかった。 どうやらフォーム系は全て@Beginと@Endでライフサイクルを意識した方が良さそう。

コメントは受け付けていません。