Pessoal,
estou começando a mexer com JSF 2.0, e comecei fazendo uma aplicação simples, uma tela de login. O fluxo funciona bem, o usuario informa o nome de usuário e a senha, o sistema vai na base busca o registro. Até ai tudo bem, o problema é quando é para mudar de página. A nevegação do JSF 2.0. No MB eu coloquei uma condição para que se for realmente o usuario retornar para a página principal, porém ele não vai. Fica sempre na tela de login. Alguém sabe o que pode ser?
web.xml
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>
<servlet>
<servlet-name>Resource Servlet</servlet-name>
<servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resource Servlet</servlet-name>
<url-pattern>/primefaces_resources/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<filter>
<filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
<filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SpringOpenEntityManagerInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Parte da página de login
[/code]
<h:form>
<p:messages id=“msgs” showDetail=“true”/>
<p:panel header=“Acessar o Sistema” style=“text-align: center;width: 28%;”>
<h:panelGrid columns=“2” cellpadding=“3”>
<h:outputLabel value=“Login:” ></h:outputLabel>
<p:inputText id=“idLogin” value="#{PrimeMB.usuario}"/>
<h:outputLabel value=“Senha:” ></h:outputLabel>
<p:password id=“idPassword” minLength=“6” feedback=“false” value="#{PrimeMB.senha}"/>
<p:commandButton action="#{PrimeMB.autenticar}" value=“Sing in”/>
</h:panelGrid>
</p:panel>
</h:form>
[code]
Página principal
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<title>Teste</title>
</h:head>
<h:body>
<p>
Welcome!!
</p>
</h:body>
</html>
menager bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.com.primefaces.mb;
import br.com.primefaces.bo.UsuarioBo;
import java.io.Serializable;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
/**
*
* @author dsenv01
*/
@ManagedBean(name = "PrimeMB")
@SessionScoped
public class PrimeMB implements Serializable {
public static final String SUCCESS = "sucesso";
public static final String ERROR = "erro";
private String usuario;
private String senha;
@ManagedProperty("#{usuarioBo}")
private UsuarioBo usuarioBo;
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario = usuario;
}
public String autenticar() {
if (getUsuarioBo().consultarUsuario(usuario, senha)) {
return "/principal.xhtml";
}
return "/index.xhtml";
}
public UsuarioBo getUsuarioBo() {
return usuarioBo;
}
public void setUsuarioBo(UsuarioBo usuarioBo) {
this.usuarioBo = usuarioBo;
}
}