我真的很喜欢 actionListener 以及将整个对象作为参数传递的可能性,而不是需要将值作为字符串传递或创建(隐藏)表单字段。我正在使用 JSF 2.1 (Mojarra) 和 RichFaces (用于 popupPanel)。
目前我遇到了以下问题:
我创建了一个带有打开弹出窗口的按钮的表格。在该弹出窗口中,用户可以编辑表中当前用户/对象的数据。
当我单击弹出窗口中的按钮以保存编辑时,如何从弹出窗口提交值并告诉 bean 操作我正在编辑哪个 userObject?
目前,我的解决方法是在弹出窗口中使用隐藏的 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>