Olá pessoal, estou iniciando estudos no mundo do JSF, estou parado em uma parte do meu estudo, minha view não consegue localizar o meu backBean, usei o faces-config de duas formas e mesmo assim, hora não consigo passar para o meu bean e hora da esse erro, o dado da minha view, usei as anotações do jsf e mesmo assim não funcionou, esta dando um erro.
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(13,3) ‘#{agenda.buscar}’ Target Unreachable, identifier ‘agenda’ resolved to null
javax.faces.webapp.FacesServlet.service(FacesServlet.java:521)
root cause
javax.faces.el.EvaluationException: org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(13,3) ‘#{agenda.buscar}’ Target Unreachable, identifier ‘agenda’ resolved to null
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:95)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
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:508)
root cause
org.apache.jasper.el.JspPropertyNotFoundException: /buscar.jsp(13,3) ‘#{agenda.buscar}’ Target Unreachable, identifier ‘agenda’ resolved to null
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:74)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:315)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
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:508)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.30 logs.
segue os codes.
faces-config.xml
[code]
<?xml version="1.0" encoding="UTF-8"?> /buscar.jsp sucess /sucesso_busca.jsp failure /falha_busca.jsp<navigation-rule>
<from-view-id>/inserir.jsp</from-view-id>
<navigation-case>
<from-outcome>sucess</from-outcome>
<to-view-id>/sucesso_insercao.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/falha_insercao.jsp</to-view-id>
</navigation-case>
</navigation-rule>
[/code]
Como estou com a versão 2.0 não preciso declarar o
<managed-bean>
<managed-bean-name>agenda</managed-bean-name>
<managed-bean-class>br.com.AgendaDB</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
backBean
package br.com.jsf;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean(name="agenda")
@SessionScoped
public class AgendaDB {
private String nome = blank;
private String endereco = blank;
private String cidade = blank;
private String telefone = blank;
private String result_busca = blank;
private String result_inserir = blank;
public static final String BUSCA_INVALIDA = "failure";
public static final String BUSCA_VALIDA = "success";
public static final String SUCESSO_INSERCAO = "success";
public static final String FALHA_INSERCAO = "failure";
static Connection conn = null;
static PreparedStatement stm = null;
static ResultSet rs;
static private String blank = "";
public AgendaDB() {
if (conn == null) {
try {
AcessoBD bd = new AcessoBD();
conn = bd.obtemConexao();
} catch (Exception evento) {
System.out.print(evento.getStackTrace());
}
}
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public String inserir() {
String result_inserir = FALHA_INSERCAO;
String sqlInsert = "INSERT INTO pessoa(nome,endereco,cidade,telefone) values('"
+ nome
+ "','"
+ endereco
+ "','"
+ cidade
+ "','"
+ telefone
+ "')";
try {
stm = conn.prepareStatement(sqlInsert);
stm.executeQuery();
stm.close();
result_inserir = SUCESSO_INSERCAO;
} catch (SQLException eventoInsert) {
System.err.println("Erro: " + eventoInsert);
result_inserir = FALHA_INSERCAO;
}
return result_inserir;
}
public String buscar() throws SQLException {
String result_busca = BUSCA_INVALIDA;
String sqlSelect = "SELECT * FROM pessoa WHERE nome = '" + nome + "'";
System.out.print(sqlSelect);
try {
stm = conn.prepareStatement(sqlSelect);
rs = stm.executeQuery();
if (rs.next()) {
nome = rs.getString(1);
endereco = rs.getString(2);
cidade = rs.getString(3);
telefone = rs.getString(4);
result_busca = BUSCA_VALIDA;
} else {
result_busca = BUSCA_INVALIDA;
}
rs.close();
stm.close();
} catch (SQLException eventoSelect) {
System.err.println("Erro: " + eventoSelect);
}
return result_busca;
}
}
Minha view
[code]
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>
Busca
voltar
[/code]
OBS.: As libs já estão nos seus devidos lugares, estou usando o tomcat 6,