Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Java para Web JSF I erro ao invocar o método gravrar da classe LivroBean

Boa noite pessoal, Alguém poderia me ajudar estou na segunda aula do jsf I e estou com dificuldade na invocação do método gravar da classe Livro, estou fazendo os mesmos passos do professor no video ainda assim meu exemplo está dando errado ao invocar o método gravar.

//Arquivo livro.xhtml <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Novo Livro

Dados do Livro

// Classe LivroBean package br.com.livraria_bean;

import javax.faces.bean.ManagedBean;

@ManagedBean public class LivroBean {

public void gravar(){ System.out.println("Gravando livro"); }

}

//Erro gerado HTTP Status 500 - javax.el.PropertyNotFoundException: /livro.xhtml @24,67 action="#{livroBean.gravar}": Target Unreachable, identifier 'livroBean' resolved to null

type Exception report message javax.el.PropertyNotFoundException: /livro.xhtml @24,67 action="#{livroBean.gravar}": Target Unreachable, identifier 'livroBean' resolved to null

description The server encountered an internal error that prevented it from fulfilling this request.

exception

2 respostas
solução!

Opa Francisco,

Pro JSF inferir seu método ele deve se chamar getGravar (o que não faz sentido) ou chamar livroBean.gravar() (com os parênteses).

O que acontece é que ele "infere" um parâmetro em todo método GET do seu bean. Assim, se existisse um getAluno, o JSF vai inferir que você tem um parâmetro aluno no seu bean e você simplesmente chama por ela direto, #{livroBean.aluno}

Qualquer coisa tamo aê!

Muito obrigado pela ajuda Hugo, Acrescentei os parêntesis de acordo a sua orientação e deu certo(livroBean.gravar()).