WebSphere ApplicationServer8のApacheMyfaces2でPrimefaces3.2を使用しています。
selectOneButtonを変更することで2つの異なるビューを選択できるフォームがあります。
このボタンをajaxの動作なしで使用すると(コマンドボタンで送信)、値の変更は正常に機能します。
しかし、私がこのようなものを使用するとき:
<h:form id="form">
<p:panel header="Panel" toggleable="true" closable="true" id="pan1">
<p:panel header="Options" toggleable="true" collapsed="true" id="pan2">
<p:panelGrid style="width:100%; text-align:center;" id="pan3">
<p:row>
<!-- some outputLabels -->
<p:column rowspan="2" style="width:130px;">
<p:splitButton value="Show" action="#{ graph.update }"
update=":form" id="splitbtn">
<p:menuitem value="Update 2"
action="#{ graph.update2 }"
update=":form" />
</p:splitButton>
</p:column>
</p:row>
<p:row>
<p:column>
<p:selectOneButton id="btn1"
value="#{ bean.val }">
<f:selectItem itemLabel="lbl1" itemValue="1" />
<f:selectItem itemLabel="lbl2" itemValue="2" />
<p:ajax event="change"
update=":firstChartForm" />
</p:selectOneButton>
</p:column>
<!-- more coloumns -->
</p:row>
</p:panel>
<!-- more content -->
</p:panel>
</h:form>
次に、ボタンを変更してフォームをajaxで更新すると、bean.valの値は空になります。(setterメソッドのロガーは空の値の2倍を出力します)。
値が空なのはなぜですか?