Задать вопрос
@SislaOpir

Как поместить значения из datatable(jsf) в коллекцию?

Имеется datatable на jsf странице, столбцами которой являются название продукта, его цена и input поле количества этого товара. При нажатии кнопки нужно загрузить в коллекцию элементы из datatable где значение введенного количества больше 0(метод addCups). Как можно корректно это реализовать ? Заранее спасибо.

@ManagedBean
@SessionScoped
public class OrderBean extends SpringBeanAutowiringSupport {
@Autowired
private OrderDAO orderDAO;

@Autowired
private OrderPositionDAO orderPositionDAO;


private Map<Long, Integer> selectedItems = new HashMap<>();

private Integer quantityOfCups;

public Map<Long, Integer> getSelectedItems() {
    return selectedItems;
}

public void setSelectedItems(Map<Long, Integer> selectedItems) {
    this.selectedItems = selectedItems;
}

public Integer getQuantityOfCups() {
    return quantityOfCups;
}

public void setQuantityOfCups(Integer quantityOfCups) {
    this.quantityOfCups = quantityOfCups;
}


public void addCups(Long id, Integer numOfCups){
    if(numOfCups > 0){
        selectedItems.put(id, numOfCups);
    }
    if(numOfCups == 0){
        selectedItems.remove(id);
    }
    System.out.println(selectedItems);
}


JSF страница

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">

<h:form>
<p:dataTable value="#{coffeeBean.allCoffee}" var="coffee">
    <p:column>
        <h:outputText value="#{coffee.coffeeName}"/>
    </p:column>
    <p:column>
        <h:outputText value="#{coffee.costForCup}"/>
    </p:column>
    <p:column>
        <p:inputText value="#{orderBean.quantityOfCups}"/>
    </p:column>
</p:dataTable>
    <h:commandButton value="add cups" action="#{orderBean.addCups(coffee.id, orderBean.quantityOfCups)}"/>
</h:form>


</html>
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы