Pessoal, estou aprendendo JSF e tudo ia bem até eu chegar na parte de regras de navegação. Parece que não está sendo executado as tags do arquivo faces-config.xml, porém funciona normalmente o que está nas tags .
Acontece o seguinte:
Tenho a pág. curso.jsp com 2 links onde cada um deve redirecionar para a pág. respectiva de acordo com a configuração das tags
[color=red]<h:commandLink value=“Listar” action=“listar”/>[/color] (deve ir para listarcursos.jsp)
[color=red]<h:commandLink value=“Incluir” action=“incluir”/>[/color] (deve ir para incluircurso.jsp)
digito o endereço [color=red]http://localhost:8080/.../curso.jsf[/color] e entra na pág. normalmente, mas ao clicar no link é carregada a própria página e não a definida no faces-config.xml.
Tenho uma outra página, incluircurso.jsp que é carregada normalmente e pela regra, se em uma inclusão ocorrer falha, deveria redirecionar para a pág. erro.jsp e se incluir com sucesso deveria ir para listarcursos.jsp. Mas isso não ocorre, parece que não entra nas tags , porém as tags são executadas normalmente.
Agradeço desde já e espero que possam me ajudar a descobrir o que acontece, já olhei aqui no fórum, na documentação oficial, mas aparentemente está tudo certo.
Abaixo colocarei os códigos completos para que possam dar uma olhada.
Estou usando jsf-1_1_01
Obrigado.
faces-config.xml
[code]<?xml version="1.0" encoding="UTF-8"?>
<faces-config>
<managed-bean>
<description>
</description>
<managed-bean-name>alunos</managed-bean-name>
<managed-bean-class>br.com.aplicacaoweb.classes.Alunos</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<description>
</description>
<managed-bean-name>AdminCursosDAO</managed-bean-name>
<managed-bean-class>br.com.aplicacaoweb.dao.AdminCursosDAO</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<description>
</description>
<managed-bean-name>curso</managed-bean-name>
<managed-bean-class>br.com.aplicacaoweb.classes.Curso</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/curso.jsp</from-view-id>
<navigation-case>
[color=red]<from-outcome>incluir</from-outcome>[/color]
<to-view-id>/incluircurso.jsp</to-view-id>
</navigation-case>
<navigation-case>
[color=red]<from-outcome>listar</from-outcome>[/color]
<to-view-id>/listarcursos.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/incluircurso.jsp</from-view-id>
<navigation-case>
[color=red]<from-outcome>sucesso</from-outcome>[/color]
<to-view-id>/listarcursos.jsp</to-view-id>
</navigation-case>
<navigation-case>
[color=red]<from-outcome>falha</from-outcome>[/color]
<to-view-id>/erro.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>[/code]
web.xml
[code]<?xml version="1.0" encoding="ISO-8859-1"?>
Struts Blank Application javax.faces.STATE_SAVING_METHOD client javax.faces.CONFIG_FILES /WEB-INF/faces-config.xml com.sun.faces.config.ConfigureListener Faces Servlet javax.faces.webapp.FacesServlet 1 action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 2 action *.do Faces Servlet *.jsf index.jsp[/code]
curso.jsp Ao clicar nos links, deveria chamar as páginas configuradas no faces-config.xml, mas não acontece nada.
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
Cadastro de Cursos |
incluircurso.jsp Ao incluir com sucesso, deveria chamar a página listarcursos.jsp e se houver um erro deveria ir para a pág. erro.jsp
[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h”%>
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
Incluir novo curso
IdCurso: | |
Curso: | |
Curso.java Possui os retornos “sucesso” ou “falha” para serem usados no
[code]public class Curso {
private int idCurso = 0;
private String curso = "";
private String status = "";
public int getIdCurso() {
return idCurso;
}
public void setIdCurso(int idCurso) {
this.idCurso = idCurso;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String incluir() throws SQLException{
Connection cn = ConnectionFactory.getConnection();
PreparedStatement pst = null;
try{
pst = cn.prepareStatement("insert into cursos (idCurso, curso) values(?,?)");
pst.setInt(1, idCurso);
pst.setString(2, curso);
pst.executeUpdate();
status = curso + " Incluído com sucesso!!!";
return "sucesso";
}catch(SQLException e){
status = "Falha na inclusão: " + e.getMessage();
return "falha";
}
}
}[/code]