Dúvida JSF 2.0

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;
    }
}

descobri pessoal.
Caso alguém passe por esse mesmo problema, foi porque eu estou usando o primefaces e estou usando o p:commandButton. Troque ele pelo h:commandButton e funcionou. Não sei pq n funcionou com o outro. Mas vou ver isso depois.

Acontece isso pois o p:commandButton por padrão faz as requisições por ajax, dai ele faz toda a logica, mas não ocorre a navegação entre as paginas. Para funcionar no p:commandButton, tu deve colocar como false o atributo ajax, que dai vai acontecer um submit e a navegação.