Estou fazendo uma lógica de Login usando JavaServer Faces. Ele acessa um back bean que verifica se o nome do usuário e a senha estão corretos e retorna dois status, login_ok e login_falhou.
Se login_ok, ele redireciona para outra tela. Mas se login_falhou, ele continua na tela de login, e deve exibir uma mensagem indicando que o login deu erro.
O problema é que eu não sei como manipular a mensagem de login_falhou no Jsf de forma a exibir esta mensagem. Alguma sugestão?
Bom, o que você poderia fazer é fazer um label vazio nas posições que tu deseja que apareçam os erros. Quando o backing bean verificar que o usuário/senha está errado, ele adiciona os campos e pode retonar uma String vazia, já que no JSF quando você retorna uma String que é um resultado que não está mapeado no faces-config.xml (no navigation-case) ele simplesente não faz nada ou seja, somente adicione as mensagens de erro nos labels e pronto. Resumindo:
Senha correta: retorna o navigation case adequado (ou seja, login_success pra ir pra tela XXX)
Senha errada: somente adicionar os campos para mostrar ao usuário que a senha esta errada e NÃO retorna um login_success)
Espero ter ajudado
M
msallem
A sugestão é muito boa, e funciona.
Mas só um comentário acerca do mecionado, criei duas regras de navegação:
login_ok => vai para página welcome.faces
login_erro => vai para página login.faces (que é a página que originou a regra de navegação)
logo, não tem como o JSF identificar que ele recebeu a página a partir de um login_erro? Já que existe o direcionamento?