Estou com um problema na chamada de um método ManagedBean por uma página xhtml
O que não entendo é que tenho duas Entidades que tem praticamente o mesmo código: uma está funcionado a outra não!
vamos lá!
Endereco(Entidade que está funcionado)
no formulário de cadastro o commandButton chamando o método adiciona
<h:commandButton value="Cadastrar">
<f:ajax event="click" execute="@form"
listener="#{enderecoBean.adiciona}" render="@all"/>
</h:commandButton>
no ManagedBean de Endereco(Entidade que está funcionado):
@ManagedBean
public class EnderecoBean {
private Endereco endereco = new Endereco();
private List<Endereco> listaEndereco;
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public List<Endereco> getListaEndereco() {
if (this.listaEndereco == null) {
EntityManager manager = this.getManager();
EnderecoRepositorio repositorio = new EnderecoRepositorio(manager);
this.listaEndereco = repositorio.getLista();
}
return this.listaEndereco;
}
public void setListaEndereco(List<Endereco> enderecos) {
this.listaEndereco = enderecos;
}
public void adiciona() {
EntityManager manager = this.getManager();
EnderecoRepositorio repositorio = new EnderecoRepositorio(manager);
if (this.endereco.getCodEndereco() == null) {
repositorio.adiciona(this.endereco);
} else {
repositorio.atualiza(this.endereco);
}
this.endereco = new Endereco();
this.listaEndereco = null;
}
Agora o problema:
Filhos Não Funciona:
<h:commandButton value="Cadastrar" styleClass="botao-formulario">
<f:ajax event="click" execute="@form"
listener="#{filhosBean.adiciona}" render="@form"/> //Chamada do Método!
</h:commandButton>
Filhos ManagedBean:
@ManagedBean
public class FilhosBean {
private Filhos filhos = new Filhos();
private Integer codigoPais;
private List<Filhos> listaFilhos;
public Filhos getFilhos() {
return filhos;
}
public void setFilhos(Filhos filho) {
this.filhos = filho;
}
public Integer getCodigoPais() {
return codigoPais;
}
public void setCodigoPais(Integer codigoPais) {
this.codigoPais = codigoPais;
}
public List<Filhos> getListaFilhos() {
if (this.listaFilhos == null) {
EntityManager manager = this.getManager();
FilhosRepositorio repository = new FilhosRepositorio(manager);
this.listaFilhos = repository.getLista();
}
return this.listaFilhos;
}
public void setListaFilhos(List<Filhos> filhos) {
this.listaFilhos = filhos;
}
public void adiciona() { // Olha o Método Aqui!
EntityManager manager = this.getManager();
PaisRepositorio paisRepositorio = new PaisRepositorio(manager);
FilhosRepositorio filhosRepositorio = new FilhosRepositorio(manager);
if (this.codigoPais != null) {
Pais pai = paisRepositorio.procura(this.codigoPais);
this.filhos.setPais(pai);
}
if (this.filhos.getCodFilho() == null) {
filhosRepositorio.adiciona(filhos);
} else {
filhosRepositorio.atualiza(filhos);
}
this.filhos = new Filhos();
this.listaFilhos = null;
}
Exceção levantada: Property 'adiciona' not found on type br.com.catenna.controle.managedbean.filhos.FilhosBean
ou seja, não encontra o método no Managedbean mesmo estando lá!
detalhe: alterei a chamada para: filhosBean.adiciona() e não resolveu!



