<h: inputText> nie wydaje się działać w <ui: repeat>, tylko ostatni wpis jest przesyłany

mam<ui:repeat> z<ui:inputText>:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"    
    xmlns:ui="http://java.sun.com/jsf/facelets"
    template="./templates/masterLayout.xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core">

    <ui:define name="content">
        <ui:repeat value="#{genproducts.dbList()}" var="itemsBuying">
            <div class="indproduct">
                <p class="center">#{itemsBuying.name}</p>
                <div class="center">
                    <h:form style="margin-left: auto; margin-right: auto;">
                        <h:inputText value="#{itemsBuying.amount}" />
                        <h:commandLink action="#{shoppingCart.addToCart(itemsBuying)}" value="add" />
                    </h:form>
                </div> 
            </div>
        </ui:repeat>
    </ui:define>
</ui:composition>

To jest#{genproducts} fasola podkładowa:

@ManagedBean(name = "genproducts")
@ViewScoped
public class Genproducts{

    public List<Product> dbList() throws SQLException {
        List<Product> list = new ArrayList<>();
        ...
        return list;
    }

} 

To jestProduct jednostka:

@ManagedBean(name = "product")
@RequestScoped
public class Product {

    private int amount;

    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

}

W moim przypadku są cztery produktydbList() metoda. W przypadku pierwszych trzech produktów, gdy wprowadzam inną wartość, w metodzie akcji pojawia się wartość domyślna. Tylko dla ostatniego produktu działa zgodnie z oczekiwaniami.

Jak to się dzieje i jak mogę to rozwiązać?

questionAnswers(1)

yourAnswerToTheQuestion