commandButton/action во вложенном интерфейсе: повтор не работает
У меня есть некоторые проблемы с моей страницей JSF, которая отображает список пиццы. Я просматриваю каждую запись моего ArrayList, которая содержит данные о пицце с помощью цикла ui: repeat. Для каждой пиццы пользователь может выбрать размер и количество, прежде чем пользователь сможет добавить пиццу в корзину, нажав на кнопку. Это где ошибка происходит. При нажатии на кнопку страница JSF обновляется, и ничего не происходит. На моей консоли нет вывода
Фрагмент кода JSF-страницы:
<ui:repeat var="result" value="#{pizzaSearchBean.resultList}">
<h:form>
<ul>
<li><p>Name: #{result.pizza.name}</p></li>
<li><p>ID: #{result.pizza.pizzaID}</p></li>
<li>
<p>Toppings:</p>
<ui:repeat var="topping" value="#{result.toppingList}">
<p>#{topping.toppingName}</p>
</ui:repeat>
</li>
<li>
<p>Sizes:</p>
<h:selectOneRadio id="pizzasize" value="#{pizzaSearchBean.pizzasize}">
<f:selectItems value="#{result.sizeList} var="size" itemLabel="#{size.diameter}" itemValue="#{size.sizeID}"/>
</h:selectOneRadio>
</li>
<li>
<p>Quantity:</p>
<h:selectOneListbox id="pizzaquantity" value="#{pizzaSearchBean.pizzaquantity}" size="1">
<f:selectItem id="quantity1" itemLabel="1x" itemValue="1">
<f:selectItem id="quantity2" itemLabel="2x" itemValue="2">
</h:selectOneListbox>
</li>
<li>
<!-- this is where no action happens... -->
<h:commandButton value="add to cart" action="#{pizzaSearchBean.addToCart(result.pizza.pizzaID)}"/>
</li>
</ul>
</h:form>
</ui:repeat>
В классе managedBean есть несколько классов для управления всеми данными. Метод addToCard выглядит так же просто, как это:
public void addToCart(int pizzaid) {
System.out.println("pizza ID : " + pizzaid);
}
Все работает вместо метода действия commandButton "addToCart()". Неважно, что написано внутри тега действия commandButton. После рендеринга поиска пиццы и нажатия на одну из кнопок "добавить в корзину" пиццы все равно не будет выполнено никаких действий.
Я надеюсь, что вы можете помочь мне.. Спасибо!