I am using in the Java Web application CDI, JPA and Maven, my application is already inserting records into the database without any problem, now what I have left is to list the records in the PrimeFaces dataTable.
Since I am a programmer with little experience, I put a static list and then gradually immigrate to a loaded list of the database as shown in the figure below.
ButwhenI'mimmigratingthelisttryingtoloadfromthedatabaseI'mnotsuccessful
Mybeanclassstayedlikethis
packagecom.algaworks.carrinho.controller;importjava.io.Serializable;importjava.util.ArrayList;importjava.util.List;importjavax.faces.bean.ViewScoped;importjavax.inject.Inject;importjavax.inject.Named;importcom.algaworks.carrinho.modelo.Produto;importcom.algaworks.carrinho.repository.Produtos;@Named@ViewScopedpublicclassListaProdutoBeanimplementsSerializable{/****/privatestaticfinallongserialVersionUID=1L;@InjectprivateProdutosprodutos;privateList<Produto>produtosFiltrados;publicListaProdutoBean(){this.produtosFiltrados=newArrayList<Produto>();}publicList<Produto>getProdutos(){returnthis.produtosFiltrados=this.produtos.getFindAll();}publicList<Produto>getProdutosFiltrados(){returnprodutosFiltrados;}publicvoidsetProdutos(Produtosprodutos){this.produtos=produtos;}publicvoidsetProdutosFiltrados(List<Produto>produtosFiltrados){this.produtosFiltrados=produtosFiltrados;}}
Myxhtmlfilelookslikethis
<ui:compositiontemplate="/WEB-INF/template/LayoutPadrao.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:define name="titulo">Dashboard</ui:define>
<ui:define name="corpo">
<h:form>
<p:messages autoUpdate="true" closable="true" />
<p:toolbar>
<p:toolbarGroup align="left">
<p:commandButton value="Salvar" id="botaoSalvar"
action="#{cadastroProdutoBean.salvar}" update="@form" />
</p:toolbarGroup>
</p:toolbar>
<p:panelGrid columns="2" id="panel">
<p:outputLabel value="Nome" for="nome" />
<p:inputText id="nome" size="50"
value="#{cadastroProdutoBean.produto.nome}" />
<p:outputLabel value="Descrição" for="descricao" />
<p:inputText id="descricao" size="100"
value="#{cadastroProdutoBean.produto.descricao}" />
<p:outputLabel value="Preço" for="preco" />
<p:inputText id="preco" size="50"
value="#{cadastroProdutoBean.produto.preco}" />
<p:outputLabel value="Quantidade" for="qtd" />
<p:inputText id="qtd" size="10"
value="#{cadastroProdutoBean.produto.quantidade}" />
</p:panelGrid>
</h:form>
<p:separator style="margin-top: 20px" />
<h:form>
<p:dataTable id="produtoTable"
value="#{listaProdutoBean.produtosFiltrados}" var="produto"
rows="20">
<p:column headerText="Nome">
<h:outputText value="#{produto.nome}" />
</p:column>
<p:column headerText="Descrição">
<h:outputText value="#{produto.descricao}" />
</p:column>
<p:column headerText="Preço">
<h:outputText value="#{produto.preco}" />
</p:column>
<p:column headerText="Quantidade">
<h:outputText value="#{produto.quantidade}" />
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:composition>
I have to create a way that my bean class was correct to load the list removed from the bank.
Here is the link of the latest version of the modifications I made in the application