Bom dia! Estou com um erro ao gravar o formulário. Já fiz de tudo que vi aqui no fórum e não deu certo.
<?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">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<h1>Novo Livro</h1>
<h:form>
<fieldset>
<legend>Dados do Livro</legend>
<h:panelGrid columns="2">
<h:outputLabel value="Titulo:" for="titulo" />
<h:inputText id="titulo" value="#{livroBean.livro.titulo}"/>
<h:outputLabel value="ISBN:" for="isbn" />
<h:inputText id="isbn" value="#{livroBean.livro.isbn}"/>
<h:outputLabel value="Preço:" for="preco" />
<h:inputText id="preco" value="#{livroBean.livro.preco}"/>
<h:outputLabel value="Data de Lançamento:" for="dataLancamento" />
<h:inputText id="dataLancamento" value="#{livroBean.livro.dataLancamento}"/>
<h:commandButton value="Gravar" action="#{livroBean.gravar}"/>
</h:panelGrid>
</fieldset>
</h:form>
</h:body>
</html>
package br.com.caelum.livraria.bean;
import javax.faces.bean.ManagedBean;
import br.com.caelum.livraria.model.Livro;
@ManagedBean(name = "LivroBean")
public class LivroBean {
private Livro livro = new Livro();
public Livro getLivro() {
return livro;
}
public void gravar() {
System.out.println("Gravando livro " + this.livro.getTitulo());
}
}
package br.com.caelum.livraria.model;
public class Livro {
private String titulo;
private String isbn;
private String dataLancamento;
private double preco;
public Livro() {
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getDataLancamento() {
return dataLancamento;
}
public void setDataLancamento(String dataLancamento) {
this.dataLancamento = dataLancamento;
}
public double getPreco() {
return preco;
}
public void setPreco(double preco) {
this.preco = preco;
}
}
HTTP Status [500] – [Internal Server Error]
Type Exception Report
Message /livro.xhtml @12,81 value="#{livroBean.livro.titulo}": Target Unreachable, identifier [livroBean] resolved to null
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
javax.servlet.ServletException: /livro.xhtml @12,81 value="#{livroBean.livro.titulo}": Target Unreachable, identifier [livroBean] resolved to null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Root Cause
javax.el.PropertyNotFoundException: /livro.xhtml @12,81 value="#{livroBean.livro.titulo}": Target Unreachable, identifier [livroBean] resolved to null
com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
javax.faces.component.UIInput.validate(UIInput.java:960)
javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
javax.faces.component.UIInput.processValidators(UIInput.java:698)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
javax.faces.component.UIForm.processValidators(UIForm.java:253)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1169)
com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
Apache Tomcat/8.5.15