Caros,
Durante esta sétima aula, pensei em criar um link na página autor.xhtml para redirecionar para a página livro.xhtml (similar ao que criamos em aulas anteriores).
Mas estou enfrentando um erro. Vamos lá. Criei o link da seguinte maneira:
< h:commandLink value="Cadastro de Livros"
action="#{AutorBean.formLivro}" immediate="true" />
Fiz algumas alterações na classe AutorBean, pois vi que ela não havia algumas implementações do LivroBean, como a implementação do Serializable. Minha classe ficou:
@ManagedBean
@ViewScoped --Inseri o escopo da View
public class AutorBean implements Serializable{
private static final long serialVersionUID = 1L;
--atributos..
--metodos..
public String formLivro(){
System.out.println("Chamando o formulário de Livros");
return "livro";
}
}
Obs.: Se no action do commandLink eu colocar "livro" ao invés do método da classe AutorBean, ele redireciona normal.
O erro é:
Caused by: javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: /autor.xhtml @27,58 action="#{AutorBean.formLivro}": Target Unreachable, identifier 'AutorBean' resolved to null
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:94)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
... 27 more
Caused by: javax.el.PropertyNotFoundException: /autor.xhtml @27,58 action="#{AutorBean.formLivro}": Target Unreachable, identifier 'AutorBean' resolved to null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 28 more
Por favor, podem me ajudar? Surgiu uma outra dúvida também, qual o motivo/intenção em implementar a classe Serializable? Oque ela faz e porque devemos implementa-la?
Obrigado!