Olá pessoal,
como vão todos?
Estou com problemas para criar uma tela de login no jsf que pega e cria um alert em jsp caso ou o campo login ou senha estejam vazios. Acontece que, após realizar essa verificação, a action não funciona. Vejam o código:
no login.jsp
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<f:loadBundle basename="resourceBundle" var="msgs" />
<h:form id="loginForm">
<h:outputText value="#{msgs.loginTitle}" />
<f:verbatim><br><br></f:verbatim>
<h:panelGrid columns="2">
<h:outputText value="#{msgs.login}:" />
<h:inputText value="#{login.usuario}" id="login" required="true" />
<h:outputText value="#{msgs.senha}:" />
<h:inputSecret value="#{login.senha}" id="senha" required="true" redisplay="true" />
</h:panelGrid>
<h:inputHidden id="hidenSenha" value="#{msgs['error.login.senha']}" />
<h:inputHidden id="hidenLogin" value="#{msgs['error.login.user']}" />
<h:inputHidden id="hidenLoginSenha" value="#{msgs['error.login.loginesenha']}" />
<f:verbatim><br></f:verbatim>
<h:commandButton action="teste_login" value="#{msgs.ok}" onclick="checkRequired(this.form)" />
</h:form>
<script type="text/javascript"><!--
function checkRequired(form) {
var login = form["body:loginForm:login"].value;
var senha = form["body:loginForm:senha"].value;
var hidenLogin = form["body:loginForm:hidenLogin"].value;
var hidenSenha = form["body:loginForm:hidenSenha"].value;
var hidenLoginSenha = form["body:loginForm:hidenLoginSenha"].value;
login = trimAll(login);
senha = trimAll(senha);
if (login == '' && senha == '') {
alert(hidenLoginSenha);
return ;
}
if (login == '') {
alert(hidenLogin);
return ;
}
if (senha == '') {
alert(hidenSenha);
return ;
}
form.submit();
}
function trimAll(sInString)
{
sInString = sInString.replace( /^\s+/g, "" );
return sInString.replace( /\s+$/g, "" );
}
//--></script>
e no faces-config.xml
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>teste_login</from-outcome>
<to-view-id>/pages/logado.jsp</to-view-id>
<redirect />
</navigation-case>
</navigation-rule>
e no meu resource bundle:
login=Login
senha=Senha
error.login.loginesenha=Favor preencher os campos de Login e Senha
error.login.senha=Favor preencher o campo Senha
error.login.user=Favor preencher o campo Login
loginTitle=Login
Acredito que fiz tudo correto, o que pode estar errado?
Abraços,
David