Я пытаюсь редактировать значения (например, имя), заполненные в таблице данных jsf. Фрагмент формы редактирования значения 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
, старое значение возвращается к управляемому компоненту не отредактированное значение.
Я попытался добавить 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>
После добавления атрибута связывания, изменил метод установки следующим образом:
public void setname(HtmlInputText name) {
this.name = name;
System.out.println("name:" + name.getValue());
}
В журнале консоли, я получаю старое значение не обновленное значение.
Пожалуйста, укажите мне ошибку, которую я здесь делаю.
Спасибо за предложения!
'binding' никогда не будет правильным решением для подобных проблем. Избавиться от этого. Что касается вашей конкретной проблемы, почему именно вы использовали 'непосредственный =" истинный "? Используете ли вы JSF 1.x или так? – BalusC
@ BalusC его Jsf 1.2. Это значение атрибута по умолчанию, которое я использовал..pls corect me, если я ошибаюсь – Vignesh
Почему именно вы указали атрибут 'непосредственный'? Если вы понятия не имели, просто удалите его. – BalusC