编辑后的值未反映在托管 bean 中

Edited value not reflected in managed bean

我正在尝试编辑 jsf 数据 table 中填充的值(比如名称)。 jsf 编辑值表单的片段如下所示。

<h:column>
<f:facet name="header">
<h:outputLabel value="Name"></h:outputLabel>
</f:facet>
<h:inputText 
value="#{maintenancedisplay.carrierMaintenanceResult.name}" > 
</h:inputText>
</h:column>

<a4j:region>
<a4j:commandButton value="Save"
onclick="#{rich:component('ajexLoad')}.show();"
oncomplete="#{rich:component('ajexLoad')}.hide();"
title="Save Details"
action="#{maintenancedisplay.saveChanges}"
reRender="growlGrp,modelpanelGroup1" immediate="true">
</a4j:commandButton>
</a4j:region>

但是在单击 save 按钮时,旧值将返回到托管 bean,而不是编辑后的值。

我尝试添加 binding attribute,如下所示。但是还是不行。

<h:column>
<f:facet name="header">
<h:outputLabel value="name"></h:outputLabel>
</f:facet>
<h:inputText 
value="#{maintenancedisplay.carrierMaintenanceResult.name}" binding="#{maintenancedisplay.name}"> 
</h:inputText>
</h:column>

添加绑定属性后,修改setter方法如下:

public void setname(HtmlInputText  name) {
        this.name = name;
        System.out.println("name:" + name.getValue());
    }

在控制台日志中,我得到的是旧值而不是更新值。

请指出我在这里犯的错误。

感谢您的建议!

当从 jsf 中删除围绕 <a4j:commandButton> 的附加 <a4j:region> 标记时,问题中提到的问题得到解决。

更新后的代码段是

<a4j:commandButton value="Save"
onclick="#{rich:component('ajexLoad')}.show();"
oncomplete="#{rich:component('ajexLoad')}.hide();"
title="Save Details"
action="#{maintenancedisplay.saveChanges}"
reRender="growlGrp,modelpanelGroup1" >
</a4j:commandButton>

感谢 BalusC 的见解和建议。