Sempre que tento gravar ele me mostra isso:
javax.servlet.ServletException: /livro.xhtml @12,65 value="#{livroBean.livro.titulo}": Target Unreachable, [livro] returned null
No campo double, que era pra ele me mostrar 0.0 ao renderizar a página, fica vazio.
Segue meu xhtml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<h1 align="center">Novo livro</h1>
<h:form>
<fieldset>
<legend>Dados do livro</legend>
<h:panelGrid columns="2">
<h:outputText value="Título: " for="titulo"/>
<h:inputText id="titulo" value="#{livroBean.livro.titulo}"/>
<h:outputText value="ISBN: " for="isbn"/>
<h:inputText id="isbn" value="#{livroBean.livro.isbn}"/>
<h:outputText value="Preço: " for="preco"/>
<h:inputText id="preco" value="#{livroBean.livro.preco}"/>
<h:outputText value="Data de lançamento: " for="dataDeLancamento"/>
<h:inputText id="dataDeLancamento" value="#{livroBean.livro.dataDeLancamento}"/>
<h:commandButton value="Gravar" action="#{livroBean.gravar()}"/>
</h:panelGrid>
</fieldset>
</h:form>
</h:body>
</html>
E meu bean:
package br.com.caelum.livraria.bean;
import javax.faces.bean.ManagedBean;
import br.com.caelum.livraria.model.Livro;
@ManagedBean
public class LivroBean {
private Livro livro;
public void gravar() {
System.out.println("Livro salvo: " + livro.getTitulo());
}
public Livro getLivro() {
return livro;
}
}
Na classe livro tenho apenas atributos e os getters and setters.
Alguém sabe o que pode ser?