Boa tarde, estou me batendo faz um tempo pra pegar os dados de uma tabela, jogar em um array, e exibir o array dentro dessa outra tabela, meu problema é no método adicionarCarrinho(), toda vez que execute o código ele me volta um Null Pointer Exception, alguém pode me ajudar com lógica disso ?
Classes modelo:
public class ItemDoPedido{
private int id;
private int quantidade;
private Produto produto;
/* getters and setters*/
public class Produto{
public int id;
public String descricao;
/*getters and setters*/
Meu managed Bean
@ManagedBean(name="CarrinhoMB")
@SessionScoped
public class carrinhoMB {
private ItemDoPedido item;
private List<ItemDoPedido> carrinho;
private ItemdoPedidoDAO iDAO = new ItemdoPedidoDAO();
private Produto produto;
private List<Produto> produtos;
private ProdutoDAO pDAO = new ProdutoDAO();
/*getters and setters*/
public carrinhoMB() {
produto = new Produto();
produtos = pDAO.MostrarProdutos();
}
MINHA DÚVIDA É NO MÉTODO ABAIXO
public void adicionarCarrinho(Produto produto) {
this.produto = produto;
item.setProduto(produto);
item.setQuantidade(1);
carrinho.add(item);
}
Minha tela:
<h:form>
<p:panel header="Produtos">
<p:dataTable var="produto" value="#{produtoMB.produtos}" scrollable="true" scrollWidth="1200px" scrollHeight="200">
<p:column headerText="Id">
<h:outputText value="#{produto.id}" />
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{produto.descricao}" />
</p:column>
<p:column headerText="Adicionar">
<p:commandButton value="Adicionar" id="carrinho" action="#{CarrinhoMB.adicionarCarrinho(produto)}" styleClass="ui-priority-primary" ajax="false"/>
</p:column>
</p:dataTable>
</p:panel>
</h:form>
<h:form>
<p:panel header="Carrinho">
<p:dataTable var="carrinho" value="#{CarrinhoMB.carrinho}">
<p:column headerText="Produto">
<h:outputText value="#{carrinho.p.descricao}" />
</p:column>
<p:column headerText="Quantidade">
<h:outputText value="#{carrinho.quantidade}" />
</p:column>
<p:column headerText="Aumentar">
<p:commandButton value="Aumentar" id="aumentar" action="#{produtoMB.excluirProduto(produto)}" styleClass="ui-priority-primary" ajax="false"/>
</p:column>
<p:column headerText="Diminuir">
<p:commandButton value="Diminuir" id="diminuir" action="#{produtoMB.excluirProduto(produto)}" styleClass="ui-priority-primary" ajax="false"/>
</p:column>
</p:dataTable>
</p:panel>
</h:form>