Problemas com JSF: Action não funciona

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

bahh, trabalho demais pra pouca coisa :smiley:
tenta assim:
JSP

[code]<%@ 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:messages/>
<h:form id=“loginForm”>
<h:outputText value="#{msgs.loginTitle}" />
<f:verbatim>

</f:verbatim>

&lt;h:panelGrid columns="2"&gt;
	&lt;h:outputText value="#{msgs.login}:" /&gt;
	&lt;h:inputText value="#{login.usuario}" id="login" required="true" /&gt;
	&lt;h:outputText value="#{msgs.senha}:" /&gt;
	&lt;h:inputSecret value="#{login.senha}" id="senha" required="true" redisplay="true" /&gt;
&lt;/h:panelGrid&gt;

&lt;f:verbatim&gt;<br>&lt;/f:verbatim&gt;
&lt;h:commandButton action="teste_login" value="#{msgs.ok}" /&gt;

</h:form>

[/code]

no arquivo properties:

javax.faces.component.UIInput.REQUIRED        = Erro de validação
javax.faces.component.UIInput.REQUIRED_detail = "{0}": Um valor é requerido.

no faces-config.xml

	&lt;application&gt;
&lt;message-bundle&gt;nomedoarquivosemo.properties&lt;/message-bundle&gt;
&lt;/application&gt;

prontinho :smiley:

ou então usa h:message para cada campo em vez do h:messages, ou cria outro componente de mensagens que vai mostrar um popup em vez de imprimir as mensagens na tela …