Segui todo o passo a passo da configuração do ambiente, porem ao clicar no botão gravar recebo vários erros, segue abaixo o xhtml e a classe livroBean:
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">
<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.titulo}"/>
<h:outputLabel value="ISBN:" for="isbn" />
<h:inputText id="isbn" value="#{livrobean.isbn}"/>
<h:outputLabel value="Preço:" for="preco" />
<h:inputText id="preco" value="#{livrobean.preco}"/>
<h:outputLabel value="Data de Lancamento:" for="dataLancamento" />
<h:inputText id="dataLancamento" value="#{livrobean.dataLancamento}"/>
<h:commandButton value="Gravar" action="#{livroBean.gravar()}"/>
</h:panelGrid>
</fieldset>
</h:form>
</h:body>
</html>
Classe livroBean
package br.com.caelum.livraria.bean;
import javax.faces.bean.ManagedBean;
@ManagedBean public class livroBean { private String titulo; private String isbn; private double preco; private String dataLancamento;
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 double getPreco() { return preco; }
public void setPreco(double preco) { this.preco = preco; }
public String getDataLancamento() { return dataLancamento; }
public void setDataLancamento(String dataLancamento) { this.dataLancamento = dataLancamento; }
public void gravar() { System.out.println("Gravando Livro" + this.titulo); } }
```
Erros recebidos ao clicar no botão gravar:
HTTP Status 500 - /livro.xhtml @12,59 value="#{livrobean.titulo}": Target Unreachable, identifier 'livrobean' resolved to null
type Exception report
message /livro.xhtml @12,59 value="#{livrobean.titulo}": Target Unreachable, identifier 'livrobean' resolved to null
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: /livro.xhtml @12,59 value="#{livrobean.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,59 value="#{livrobean.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:1170) 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 Apache Tomcat/7.0.82 logs.
Se alguém puder me ajudar eu agradeço, no aguardo!!