Olá
Estou tomando a exceção javax.el.MethodNotFoundException: ao tentar executar um método do meu bean, depois de algumas tentativas descobri o seguinte:
Se eu escrevo o método assim
public String getOrigem()
{
System.out.println("ENTROU NO ORIGEM");
return "log_list_form";
}
ele da a exceção.
Se eu escrevo assim (sem o get):
public String origem()
{
System.out.println("ENTROU NO ORIGEM");
return "log_list_form";
}
ele funciona.
Na chamada jsf ele está assim:
<h:commandLink action="#{pesquisaLog.teste}" value="Pesquisar Log"/>
Acho que pode ser problema de configuração ou alguma herança que está faltando ao meu controller (bean). Criei meu bean na mão, porém comparei com outros gerados pela IDE (netBeans) e não vi diferenças em relação à herança.
HELP!!
Como ficou seu faces-config.xml?
t+
O que seria este “teste”: pesquisaLog.teste, um método ou um atributo da classe?
Posta seu Mbean ai
Aqui fica assim:
public String origem(){
System.out.println("ENTROU NO ORIGEM");
return "log_list_form";
}
Aqui fica assim:
<h:commandLink action="#{pesquisaLog.origem}" value="Pesquisar Log"/>
Vê se resolve.
Pessoal, obrigado a todos pelas repostas, demorei a responder porque não tive muito tempo para acessar a net desde ontem.
Eu acho que está tudo certo, é algo relacionado ao tipo de ação que estou realizando no jsf. O commandLink não deve interpretar o nome do método da mesma forma que campos de formulário (me corrijam se eu estiver errado).
Porque digo isso…
Utilizei o mesmo bean em um formulário e todos os métodos get funcionaram, ou seja, o bean e o faces-config estão corretos. Só no commandlink eu tive problemas.
Quando escrevo o método getOrigem() da erro, mas quando escrevo origem (sem o get) funciona. Na minha jsf, independente de como o metdo foi escrito eu uso #{nomeBean.origem}, nunca coloco o get.