私は単純なデータテーブル(Primefaces)を持っています。この表の最後の列には、パラメーター (f:param) を設定するボタンが含まれています。ajax="true" パラメータを指定して p:commandButton を使用しています。ボタンはアクション (マネージド Bean のメソッド) にバインドされます。データテーブルのボタンを2回クリックするまで、すべて問題ありません。何故ですか ?
コードは次のようになります。
<p:dataTable id="zones" value="#{appointmentForm.matchingZones}"
var="zone" paginator="true" rows="10"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
emptyMessage="#{msg['label.noAvailableZones']}">
<p:column headerText="#{msg['label.choose']}">
<p:commandButton value="#{msg['label.choose']}"
actionListener="#{appointmentForm.handleChosenZone}" process="@this"
update=":verificationForm" ajax="true">
<f:param name="zoneId" value="#{zone.id}"/>
</p:commandButton>
</p:column>
</p:datatable>
最初にパラメーターが適切に設定されている行のボタンをクリックすると、2回目にNullPointerExceptionが発生します。
何か案は ?