ola pessoal
eu estou tendo o seguinte problema,
tenho um datatable
<rich:dataTable value="#{pessoaFisicaMB.pessoaFisicaLista}" rendered="#{pessoaFisicaMB.pessoaFisicaListaQtd>0}" id="tabela" var="pessoa" border="0" rowClasses="TbltrTrue,TbltrFalse" width="750">
<rich:column>
<f:facet name="header">
<h:outputText value="Código" />
</f:facet>
<h:outputText value="#{pessoa.id}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{pessoa.nome}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="CPF/CNPJ" />
</f:facet>
<h:outputText value="#{pessoa.documento}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Status" />
</f:facet>
<h:outputText value="#{pessoa.status.descr}"/>
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Editar" />
</f:facet>
<h:commandLink value="Editar" action="#{pessoaFisicaMB.acaoEditar}">
<f:param name="id" value="#{pessoa.id}" />
</h:commandLink>
</rich:column>
</rich:dataTable>
que ao clicar no linkcomand, ele manda para a pagina de alteracao.
isso funcionava perfeitamente, ate que eu mudei o seguinte no meu ManagedBean.
adicionei a seguinte propriedade.
...
private List<PessoaFisica> pessoaFisicaLista = new ArrayList<PessoaFisica>();
public List<PessoaFisica> getPessoaFisicaLista() {
return pessoaFisicaLista;
}
public void setPessoaFisicaLista(List<PessoaFisica> pessoaFisicaLista) {
this.pessoaFisicaLista = pessoaFisicaLista;
}
...
que a preencho atraves deste metodo
[code] public String busca() throws Exception{
if (getPessoaStatusId()!=“0”){
this.pessoaFisica.setStatus(Status.getStatusPorId(getPessoaStatusId()));
}
this.setPessoaFisicaLista(this.pessoaFisicaDB.getListaPorParametro(this.pessoaFisica));
if(this.getPessoaFisicaLista().size()==0){
FacesUtils.addErrorMessage("A Busca não obteve resultados");
}
return "lista";
}
[/code]
o meu acaoEditar deixei assim, apenas para testar o direcionamento
public String acaoEditar(){
return "form";
}
e desde entao, so dor de cabeca
ele nao funciona se eu acessar direto a propriedade do managedbean(PessoaFisicaLista), porem, se eu acessar a do PessoaFisicaDB, ele funciona sem problemas.
eu adicionei no final da pagina o seguinte treixo de codigo
<h:commandLink value="Editar" action="#{pessoaFisicaMB.acaoEditar}">
<f:param name="id" value="128" />
</h:commandLink>
atraves dessa parte funciona perfeitamente, JUNTO com o datatable que nao funciona.
agora, o por que que isso ocorre?
o que estou fazendo de errado?
vou deixa o meu ManageBeam completo, nao reparem muito na bagunca, pois estava fazendo os teste pra ver se descobria os erros
package br.com.krusst.precadastro.managedbean;
import java.util.ArrayList;
import java.util.List;
import javax.faces.context.FacesContext;
import br.com.krusst.precadastro.bean.Email;
import br.com.krusst.precadastro.bean.Status;
import br.com.krusst.precadastro.bean.PessoaFisica;
import br.com.krusst.precadastro.bean.Telefone;
import br.com.krusst.precadastro.dao.EmailDB;
import br.com.krusst.precadastro.dao.LogradouroDB;
import br.com.krusst.precadastro.dao.PessoaFisicaDB;
import br.com.krusst.precadastro.dao.TelefoneDB;
import br.com.krusst.precadastro.util.FacesUtils;
import br.com.krusst.precadastro.util.KrusstException;
import br.com.krusst.precadastro.dao.PessoaFisicaDB;
public class PessoaFisicaMB {
private final String ESTADO_DE_PESQUISA = "Pesquisar";
private final String ESTADO_DE_CADASTRO = "Cadastrar";
private final String ESTADO_DE_EDICAO = "Editar";
private final String ESTADO_DE_REVISAO = "Revisar";
private final String ESTADO_DE_RECADASTRO = "Recadastrar";
private String estadoAtual = ESTADO_DE_CADASTRO;
String pessoaId;
String pessoaNome;
String pessoaDocumento;
String pessoaStatusId;
PessoaFisicaDB pessoaFisicaDB = new PessoaFisicaDB();
PessoaFisica pessoaFisica = new PessoaFisica();
LogradouroDB logradouroDB = new LogradouroDB();
TelefoneDB telefoneDB = new TelefoneDB();
EmailDB emailDB = new EmailDB();
private List<PessoaFisica> pessoaFisicaLista = new ArrayList<PessoaFisica>();
public PessoaFisicaMB() {
super();
}
public String getPessoaNome() {
return pessoaNome;
}
public String getPessoaDocumento() {
return pessoaDocumento;
}
public void setPessoaNome(String pessoaNome) {
this.pessoaNome = pessoaNome;
}
public void setPessoaDocumento(String pessoaDocumento) {
this.pessoaDocumento = pessoaDocumento;
}
public List<PessoaFisica> getPessoaFisicaLista() {
return pessoaFisicaLista;
}
public void setPessoaFisicaLista(List<PessoaFisica> pessoaFisicaLista) {
this.pessoaFisicaLista = pessoaFisicaLista;
}
public String getESTADO_DE_PESQUISA() {
return ESTADO_DE_PESQUISA;
}
public String getESTADO_DE_CADASTRO() {
return ESTADO_DE_CADASTRO;
}
public String getESTADO_DE_EDICAO() {
return ESTADO_DE_EDICAO;
}
public String getESTADO_DE_REVISAO() {
return ESTADO_DE_REVISAO;
}
public String getESTADO_DE_RECADASTRO() {
return ESTADO_DE_RECADASTRO;
}
public String getEstadoAtual() {
return estadoAtual;
}
public String getPessoaStatusId() {
if (pessoaStatusId == null){
pessoaStatusId = "0";
}
return pessoaStatusId;
}
public String getPessoaId() {
return pessoaId;
}
public PessoaFisicaDB getPessoaFisicaDB() {
return pessoaFisicaDB;
}
public PessoaFisica getPessoaFisica() {
return pessoaFisica;
}
public LogradouroDB getLogradouroDB() {
return logradouroDB;
}
public TelefoneDB getTelefoneDB() {
return telefoneDB;
}
public EmailDB getEmailDB() {
return emailDB;
}
public void setEstadoAtual(String estadoAtual) {
this.estadoAtual = estadoAtual;
}
public void setPessoaStatusId(String pessoaStatusId) {
this.pessoaStatusId = pessoaStatusId;
}
public void setPessoaId(String pessoaId) {
this.pessoaId = pessoaId;
}
public void setPessoaFisicaDB(PessoaFisicaDB pessoaFisicaDB) {
this.pessoaFisicaDB = pessoaFisicaDB;
}
public void setPessoaFisica(PessoaFisica pessoaFisica) {
this.pessoaFisica = pessoaFisica;
}
public void setLogradouroDB(LogradouroDB logradouroDB) {
this.logradouroDB = logradouroDB;
}
public void setTelefoneDB(TelefoneDB telefoneDB) {
this.telefoneDB = telefoneDB;
}
public void setEmailDB(EmailDB emailDB) {
this.emailDB = emailDB;
}
public int getPessoaFisicaListaQtd(){
return this.getPessoaFisicaLista().size();
}
public String busca() throws Exception{
/*
PessoaFisica pessoaFisicaParametro = new PessoaFisica();
pessoaFisicaParametro.setStatus(Status.getStatusPorId(this.getPessoaId()));
pessoaFisicaParametro.setNome(this.pessoaFisica.getNome());
pessoaFisicaParametro.setDocumento(this.pessoaFisica.getDocumento());
//pessoaFisicaParametro
*/
if (getPessoaStatusId()!="0"){
this.pessoaFisica.setStatus(Status.getStatusPorId(getPessoaStatusId()));
}
this.setPessoaFisicaLista(this.pessoaFisicaDB.getListaPorParametro(this.pessoaFisica));
if(this.getPessoaFisicaLista().size()==0){
FacesUtils.addErrorMessage("A Busca não obteve resultados");
}
return "lista";
}
public String acaoEditar(){
String value = "0";
value = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
List<Telefone> listaTelefone = new ArrayList<Telefone>();
List<Email> listaEmail = new ArrayList<Email>();
try {
this.setPessoaFisica(this.pessoaFisicaDB.getPorId(Integer.parseInt(value)));
this.pessoaFisica.setLogradouro(this.logradouroDB.getLogradouroPorParametro(Integer.parseInt(value), 0));
listaTelefone = this.telefoneDB.getTelefonePorParametro(Integer.parseInt(value), 0);
if (listaTelefone.size()>=1){this.pessoaFisica.setTelefone1(listaTelefone.get(0));}
if (listaTelefone.size()==2){this.pessoaFisica.setTelefone2(listaTelefone.get(1));}
listaEmail = this.emailDB.getEmailPorParametro(Integer.parseInt(value), 0);
if (listaEmail.size()>=1){this.pessoaFisica.setEmail1(listaEmail.get(0));}
if (listaEmail.size()==2){this.pessoaFisica.setEmail2(listaEmail.get(1));}
} catch (Exception e) {
e.printStackTrace();
}
this.setEstadoAtual(this.ESTADO_DE_EDICAO);
return "form";
}
public String acaoCadastrar(){
try {
this.pessoaFisicaDB.insert(this.pessoaFisica);
this.logradouroDB.insert(pessoaFisica.getId(),this.pessoaFisica.getLogradouro());
this.telefoneDB.insert(pessoaFisica.getId(),this.getPessoaFisica().getTelefone1());
this.telefoneDB.insert(pessoaFisica.getId(),this.getPessoaFisica().getTelefone2());
this.emailDB.insert(pessoaFisica.getId(),this.getPessoaFisica().getEmail1());
this.emailDB.insert(pessoaFisica.getId(),this.getPessoaFisica().getEmail2());
} catch (KrusstException e) {
e.printStackTrace();
}
FacesUtils.addInfoMessage("Cadastro de Pessoa realizado com sucesso, código do cadastro: " + this.pessoaFisica.getId());
this.pessoaFisicaDB.getPessoaFisica().setPessoaFisicaLimpa();
return "cadastrar";
}
}
abs
T+