actionListener と、値を文字列として渡すか (非表示の) フォーム フィールドを作成する代わりに、オブジェクト全体をパラメーターとして渡す可能性が大好きです。私は JSF 2.1 (Mojarra) と RichFaces (popupPanel 用) を使用しています。
現在、次の問題に悩まされています。
ポップアップを開くボタンのあるテーブルを作成します。そのポップアップで、ユーザーはテーブル内の現在のユーザー/オブジェクトのデータを編集できます。
ポップアップのボタンをクリックして編集を保存するとき、ポップアップから値を送信し、どの userObject を編集したかを Bean アクションに伝えるにはどうすればよいですか?
現在、私の回避策は、ポップアップで非表示の inputText フィールドを使用することですが、この方法は好きではありません。代替手段はありますか?
これは私が達成しようとしていることです(最小化):
<h:datatable value="#{bean.users}" var="user">
<h:column>
Username #{user.name}
</h:column>
<h:column>
<input onclick="showPopup()"/>
</h:column>
</h:datatable>
<rich:popupPanel>
<h:inputText value="#{bean.text}" />
<h:commandButton value="Action" actionListener="#{bean.doSomething}">
<f:attribute name="selected" value="#{userObjectFromDatatable}" /> <-- HOW? -->
</h:commandButton>
</rich:popupPanel>