编辑后的值未反映在托管 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 的见解和建议。
我正在尝试编辑 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 的见解和建议。