Não consigo inserir em um ArrayList

0 respostas
S
O ArrayList que criei pra receber os dados de uma datatable sempre vem vazio

Página pra mostrar todos os produtos e receber a quantidade(Isso funciona)

<?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:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title>Produtos</title>
    </h:head>
    <h:body>
        <h:form>
            <p:panel header="Produtos">

                <p:commandButton value="Voltar" action="index.xhtml" styleClass="ui-priority-primary" ajax="false"/>
                <p:dataTable var="produto" value="#{principalMB.produtos}">
                    <p:column headerText="Código">
                        <h:outputText value="#{produto.id}" />
                    </p:column>

                    <p:column headerText="Nome">
                        <h:outputText value="#{produto.descricao}" />
                    </p:column>

                    <p:column headerText="Quantidade">
                        <h:inputText id="quantidade" value="#{principalMB.itemdopedido.quantidade}" />
                    </p:column>

                    <p:column headerText="Add">
                        <p:commandButton value="Adicionar ao carrinho" id="alterar" action="#{principalMB.adicionarCarrinho(idproduto, principalMB.itemdopedido.quantidade)}" styleClass="ui-priority-primary" ajax="false"/>

                    </p:column>
                    <p:column>
                        <a href="carrinho.jsf">Ver carrinho</a>
                    </p:column>
                </p:dataTable>
            </p:panel>
        </h:form>
    </h:body>
</html>

ManagedBean (Parte que interessa)

@Named(value = "principalMB")
//@RequestScoped
@SessionScoped
public class PrincipalMB implements Serializable {
private ArrayList<ItemDoPedido> itens = new ArrayList<ItemDoPedido>();
    ItemDoPedido i = new ItemDoPedido();
    Produto p = new Produto();

public void adicionarCarrinho(int idproduto, int quantidade){
        i.setIdproduto(p.getId());
        i.setQuantidade(quantidade);
        itens.add(i);

}

Tela pra mostrar o carrinThis text will be hiddenho

<!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:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
    <h:head>
        <title>Produtos</title>
    </h:head>
    <h:body>
        <h:form>
            <p:panel header="Carrinho">

                <p:commandButton value="Voltar" action="index.xhtml" styleClass="ui-priority-primary" ajax="false"/>
                <p:dataTable var="item" value="#{principalMB.itens}">
                    <p:column headerText="Código">
                        <h:outputText value="#{item.idproduto}" />
                    </p:column>

                    <p:column headerText="Nome">
                        <h:outputText value="#{item.quantidade}" />
                    </p:column>

                    <p:column headerText="Add">
                        <p:commandButton value="Finalizar" id="alterar" action="#" styleClass="ui-priority-primary" ajax="false"/>

                    </p:column>
                </p:dataTable>
            </p:panel>
        </h:form>
    </h:body>
</html>
Criado 20 de setembro de 2018
Respostas 0
Participantes 1