Problems loading dataTable PrimeFaces

0

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

link

    
asked by anonymous 30.03.2015 / 15:22

1 answer

1

In the datatable, you used the method: value="# {ProductProductBean.ProductsPilters"} that in the ManagedBean code only returns the variable, if you use the getProducts () method, it will run findAll.

Since you included the code in github, I took the liberty of using your Pojo class from your project to generate an application with the Demoiselle Framework ( link ), using the Demoiselle Nimble automatic code generation tool: link

The result is here: link

It may be an option to decrease some of your work.

The application is ready to run on the JBoss 7.1 server, already using the embedded database (H2) of the same server.

The Demoiselle project offers preconfigured environment installation packages that can make development easier, see here: link

    
31.03.2015 / 20:16