Boa a tarde…
Estou na seguinte situação, tenho uma arraylist de pessoas porém ela só armazena a última pessoa cadastrada, como se estivesse sobescrevendo o valor anterior. Jé debuguei e sempre que é chamado o método para add na lista ela está vazia.
Se alguém poder me ajudar, segue o código abaixo:
JSP:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<!-- RichFaces tag library declaration -->
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<html>
<head>
<title>Testando richfaces com tabelas</title>
</head>
<body>
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:column>
<h:outputText value="Nome:"/>
</h:column>
<h:column>
<h:inputText value="#{beanTabela.pessoa.nome}"/>
</h:column>
<h:column>
<h:outputText value="Idade:"/>
</h:column>
<h:column>
<h:inputText value="#{beanTabela.pessoa.idade}"/>
</h:column>
<h:column>
<h:outputText value="Sexo"/>
</h:column>
<h:column>
<h:inputText value="#{beanTabela.pessoa.sexo}"/>
</h:column>
</h:panelGrid>
<a4j:commandButton value="Cadastrar">
<a4j:support event="onclick" action="#{beanTabela.addPessoa}" reRender="tabelaPessoa"/>
</a4j:commandButton>
<br><br>
<rich:dataTable value="#{beanTabela.listaPessoas}" var="lista" id="tabelaPessoa">
<h:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{lista.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Idade"/>
</f:facet>
<h:outputText value="#{lista.idade}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sexo"/>
</f:facet>
<h:outputText value="#{lista.sexo}"/>
</h:column>
</rich:dataTable>
</h:form>
</f:view>
</body>
</html>
Bean:
package br.com;
import java.util.ArrayList;
public class TestandoTabela {
private ArrayList<Pessoa> listaPessoas = new ArrayList<Pessoa>();
private Pessoa pessoa = new Pessoa();
public void addPessoa(){
listaPessoas.add(this.pessoa);
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public ArrayList<Pessoa> getListaPessoas() {
return listaPessoas;
}
public void setListaPessoas(ArrayList<Pessoa> listaPessoas) {
this.listaPessoas = listaPessoas;
}
}
Desde já, agradeço!
Por favor não faça isso filho