Boa noite pessoal,
Estou com problemas com as regras de navegação do JSF 2.1.
Tentei utilizar de duas maneiras: configurando navigation-rule no faces-config.xml e outra fazendo que o retorno do método fosse uma String com o nome da página de destino (essa segunda seria a novidade do JSF2 pelo que li em alguns lugares). Mas nenhum dos casos funcionam. Quando eu clico no botão do formulário os valores são carregados no bean, mas a página é recarregada ao invés de direcionar para a página seguinte.
faces-config.xml
<navigation-rule>
<!--<from-view-id>/faces/*</from-view-id>-->
<from-view-id>/index.xhtml</from-view-id>
<navigation-case>
<from-action>#{usuarioBean.verificaUsuario}</from-action> <!-- tentei com e sem essa linha -->
<from-outcome>logado</from-outcome>
<to-view-id>/inicio.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-action>#{usuarioBean.verificaUsuario}</from-action> <!-- tentei com e sem essa linha -->
<from-outcome>nlogado</from-outcome>
<to-view-id>/erro.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
o método do Bean que retorna o String conforme regra do faces-config
public String verificaUsuario(String nome) throws SQLException{
Logger logger = LoggerFactory.getLogger(UsuarioBean.class);
Boolean logado;
String status;
UsuarioDAO userDAO = new UsuarioDAO();
logado = userDAO.verificarUsuario(nome);
if(logado == true){
status = "logado"; /*status = "inicio";*/
}
else{
status = "nlogado"; /*status = "erro";*/
}
logger.info("Retorno do verificaUsuario" + status);
return status;
}
index.xhtml
<ui:composition template="modelo.xhtml">
<ui:define name="menu">
<h:commandLink value="" action="modelo.xhtml"/>
</ui:define>
<ui:define name="conteudo">
<p:growl showDetail="true"></p:growl>
<h:panelGrid id="formLogin" columns="2" width="30%">
<f:facet name="header">
Login
</f:facet>
<h:outputLabel for="nome" value="Usuario:"/>
<p:inputText value="#{usuarioBean.nome}" id="nome" maxlength="14" size="20"/>
<h:outputLabel for="senha" value="Senha:"/>
<h:inputSecret value="#{usuarioBean.senha}" id="senha" maxlength="14" size="20"/>
<f:facet name="footer">
<h:commandButton id="login" value="Login" actionListener="#{usuarioBean.verificaUsuario}"/>
</f:facet>
</h:panelGrid>
<body>#{usuarioBean.nome}
</body>
</ui:define>
</ui:composition>
Help!