2015-07-06 2 views
0

Я пытаюсь редактировать значения (например, имя), заполненные в таблице данных 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()); 
    } 

В журнале консоли, я получаю старое значение не обновленное значение.

Пожалуйста, укажите мне ошибку, которую я здесь делаю.

Спасибо за предложения!

+0

'binding' никогда не будет правильным решением для подобных проблем. Избавиться от этого. Что касается вашей конкретной проблемы, почему именно вы использовали 'непосредственный =" истинный "? Используете ли вы JSF 1.x или так? – BalusC

+0

@ BalusC его Jsf 1.2. Это значение атрибута по умолчанию, которое я использовал..pls corect me, если я ошибаюсь – Vignesh

+0

Почему именно вы указали атрибут 'непосредственный'? Если вы понятия не имели, просто удалите его. – BalusC

ответ

0

Проблема, упомянутая в вопросе, решается, когда добавляется дополнительная отметка <a4j:region> вокруг <a4j:commandButton> из jsf.

Обновленный фрагмент является

<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 для идей и предложений.

Смежные вопросы