Aquí está el panorama (simplificado):<ui:repeat><h:inputText> en una lista de <String> no actualiza modelo de valores
Hay un frijol (llámese mrBean
) con un miembro y los getters/setters apropiadas:
private List<String> rootContext;
public void addContextItem() {
rootContext.add("");
}
El código 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>
El problema es que, al hacer clic en los botones "Añadir", los valores que eran Ente rojo en el <h:inputText/>
que representan las cadenas en el stringList
no se ejecutan.
En realidad, el setter mrBean.stringList
(setStringList(List<String> stringList)
) nunca se llama.
¿Alguna idea de por qué?
Algo de información - estoy usando MyFaces JSF 2.0 en Tomcat 6.
Gracias! Pensé que el problema era que los valores eran inmutables, pero no sabía si JSF de alguna manera podría superar esto. Esto realmente lo explica, así que gracias. – Ben
De nada. – BalusC
Entonces, ¿loop.index aquí devuelve el índice del elemento actual de la lista? – user3663882