我正在尝试使用rich:inplaceInput 在rich:dataTable 中实现可编辑的行。这里的问题是编辑的值没有反映在支持 bean 中。
<rich:column width="200px">
<f:facet name="header">
<h:outputText value="Roles" />
</f:facet>
<rich:inplaceInput id="roleText" value="#{role}" inputWidth="60px" controlsHorizontalPosition="right"
showControls="true" editEvent="none">
<f:facet name="controls">
<h:panelGroup>
<h:commandButton id="saveEdit" value="Save"
action="#{manageRolesBean.editRoleAction}"
image="/images/indicator_accept.gif" alt="Save" />
<h:commandButton id="cancelEdit" value="Cancel"
onclick="#{rich:component('rolesForm:roleText')}.cancel(); return false;"
image="/images/indicator_reject.gif" alt="Cancel" />
</h:panelGroup>
</f:facet>
</rich:inplaceInput>
</rich:column>
单击 Save 按钮,在 backing bean 中给出一个空字符串。我尝试使用 a4j:actionParam 从客户端读取值,但这也不起作用:
<a4j:actionparam name="editedValue" value="#{rich:findComponent('roleText').value}" assignTo="#{manageRolesBean.role.name}" />
我仅限于 JSF 1.2 和 RichFaces 3.3.X。此处描述的解决方案引用了较新的版本。如何将编辑的值保存在支持 bean 中?