ポップアップを開く編集ボタンを含む通常のデータテーブルがあります。
<h:form id="creditcard_configuration_form">
<rich:dataTable id="test" width="100%"
value="#{creditcardConfigurationService.cardsList}"
iterationStatusVar="it" var="card">
<rich:column>
<a4j:commandLink execute="@this" ajaxSingle="true"
oncomplete="#{rich:component('test123')}.show()">
<h:graphicImage value="../../resources/images/edit.gif"
alt="edit" />
<a4j:param value="#{it.index}"
assignTo="#{creditcardConfigurationAction.currentIndex}" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<rich:popupPanel id="test123"
header="#{creditcardConfigurationAction.currentIndex}"
onmaskclick="#{rich:component('test123')}.hide()">
asdf
</rich:popupPanel>
</h:form>
ポップアップを開く前に、Bean にインデックス変数を設定しました。ただし、JSF は、ポップアップを開くときに getter メソッドを呼び出してindex
ofを取得することはありa4j:param
ません (少なくとも、今はそうではありません)。ページがレンダリングされるときにゲッターメソッドが呼び出されることがわかりましたが、その後は呼び出されません。(つまり、ポップアップの場合、インデックスは常に 0 に見えます)。
インデックス var を含む Bean はビュー スコープであり、サービス Bean はセッション スコープです。RichFaces (4.3.2 Final) と JSF 2.0.6 の最新バージョンを使用しています。