Ecco lo scenario (semplificato):Utilizzando <ui:repeat><h:inputText> su un elenco <String> non aggiorna modello valori
C'è un fagiolo (chiamarlo mrBean
) con un membro e le opportune getter/setter:
private List<String> rootContext;
public void addContextItem() {
rootContext.add("");
}
Il codice JSF:
<h:form id="a_form">
<ui:repeat value="#{mrBean.stringList}" var="stringItem">
<h:inputText value="#{stringItem}" />
</ui:repeat>
<h:commandButton value="Add" action="#{mrBean.addContextItem}">
<f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>
</h:form>
Il problema è che quando si clicca il pulsante "Aggiungi", i valori che erano ente rosso nel <h:inputText/>
che rappresentano le stringhe nel stringList
non vengono eseguite.
In realtà, il setter mrBean.stringList
(setStringList(List<String> stringList)
) non viene mai chiamato.
Qualche idea del perché?
Alcune informazioni - sto usando MyFaces JSF 2.0 su Tomcat 6.
Grazie! Ho capito che il problema era che i valori erano immutabili, ma non sapevo se JSF potesse in qualche modo superare questo problema. Questo spiega davvero così grazie. – Ben
Prego. – BalusC
Quindi, loop.index qui restituisce l'indice dell'elemento corrente della lista? – user3663882