Boa tarde, escrevi um código para realizar o cadastro de alguns produtos e exibi-los em uma dataTable. Os produtos são cadastrados dentro de um ArrayList e consigo exibi-los através do terminal de saída da IDE, mas eles não aparecem na dataTable. Poderiam me dar uma ajuda para resolver esse problema?
Página de exibição:
<?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">
<ui:decorate xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core"
template="template.xhtml">
<ui:define name="conteudo">
<h:form id="form">
<p:dataTable id="tabela" var="produtos" value="#{bean.produtos}">
<f:facet name="header">
Produtos
</f:facet>
<p:column headerText="Nome">
<h:outputText value="#{produtos.nome}"/>
</p:column>
<p:column headerText="Valor">
<h:outputText value="#{produtos.valor}"/>
</p:column>
<p:column headerText="Código">
<h:outputText value="#{produtos.codigo}"/>
</p:column>
</p:dataTable>
</h:form>
</ui:define>
</ui:decorate>
Página de cadastro
<ui:define name=“conteudo”>
Cadastrar Produtos
<h:form>
<h:panelGrid columns=“2”>
<h:outputLabel value=“Nome: “/>
<h:inputText id=“nome” value=”#{bean.prod.nome}”/>
<h:outputLabel value=“Valor: “/>
<h:inputText id=“valor” value=”#{bean.prod.valor}”/>
<h:outputLabel value=“Código: “/>
<h:inputText id=“codigo” value=”#{bean.prod.codigo}”/>
</h:panelGrid>
<h:commandButton value=“Cadastrar” action="#{bean.cadastrarProduto()}"
style=“background-color: bisque”>
</h:commandButton>
</h:form>
</ui:define>
Bean
public class Bean {
/**
* Creates a new instance of Bean
*/
public Bean() {
}
//Arrays
private ArrayList produtos = new ArrayList();
//Variáveis
private Produto prod = new Produto();
//Getters e Setters
public ArrayList getProdutos() {
return produtos;
}
public void setProdutos(ArrayList<Produto> produtos) {
this.produtos = produtos;
}
public Produto getProd() {
return prod;
}
public void setProd(Produto prod) {
this.prod = prod;
}
public void cadastrarProduto(){
Produto auxiliar01 = new Produto();
auxiliar01.setNome(prod.getNome());
auxiliar01.setValor(prod.getValor());
auxiliar01.setCodigo(prod.getCodigo());
produtos.add(auxiliar01);
prod.setNome("");
prod.setValor("");
prod.setCodigo("");
imprimirPrompt();
}