Jsf+Primefaces+javaScript para compara senha e dar a mensagem?

oi pessoal fiz isso ate agora com as coisas q vi na net gostaria da ajuda de vcs para resolver isso.

qro q execute o actionListener="#{UserBean.salvarUser}" se email e senha forem iguais, se nao forem a mensagem do script. vlw

<h:outputLabel value=“EMAIL:”/>
<h:inputText id=“email” required=“true” value="#{UserBean.email}"/>
<h:outputLabel value=“CONFIRMAR EMAIL:”/>
<h:inputText id=“email2” required=“true” value="#{UserBean.email2}"/>
<h:outputLabel value=“SENHA:”/>
<h:inputSecret id=“senha” required=“true” value="#{UserBean.senha}"/>
<h:outputLabel value=“CONFIRMAR SENHA:”/>
<h:inputSecret id=“senha2” value="#{UserBean.senhaComp}"/>


<p:commandButton value=“CRIAR CONTA” type=“submit”
actionListener="#{UserBean.salvarUser}"
onclick=“alertaok(this.form)”/>

essa e parte da mensagem

               <f:verbatim id="senhaEmail" >
                    <script type="text/javascript" charset="">
                        function alertaok(form)
                        {
                            var email = form["registration:email"].value;
                            var email2  = form["registration:email2"].value;
                            var senha = form["registration:senha"].value;
                            var senha2  = form["registration:senha2"].value;

                            if(email != email2){
                               alert("emails diferentes");
                            }
                            if(senha != senha2){
                                alert("senhas diferentes");
                            }
                            else{
                                 form.submit();
                            }
                        }
                    </script>
                </f:verbatim>

nao sei c assim e melhor maneira de mostra ao usuario q ele nao digitou os dois campos iguais se alguem quiser me mostra outra maneira, estou aberto a outras soluçoes!!!

Opa, no prime faces ja tem um componente que trabalha com senhas olhe a opção de Match Mode.

http://www.primefaces.org/showcase-labs/ui/password.jsf

Agora de email, acho melhor vc fazer no managedBean, pq ai vc ja verifica se ja existe esse email cadastrado no sistema.

Segue um exemplo só pra vc ter uma idéia…

//ManagedBean

......
    public void verificarEmail(){
          if(!email1.equals(email2)){
             FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Email inválido", null));
          }
          // pode add  aqui metodo para verificar se email ja existe no sistema
    }
.....

e na sua pagina web add esse componente:

<h:messages/>

[]'s

cara eu ja tinha feito isso, e num deu certo. nao tinha colocado essa tag do messages mais pus agora e num aparece a mensagem :S

nao aparece mensagem nenhuma :s

Coloca seu código do ManagedBean.

aki so fiz um para testar o exemplo q vc mandou

  <f:view>
            <h:body>
                <h:form>

                    <h:messages/>
                    <p:messages/>

                    <p:inputText value="#{Testes.email}"/>
                    <p:inputText value="#{Testes.email2}"/>
                    <p:commandButton value="Verificar" actionListener="#{Testes.verificarEmail}" />

         ....

blz agora o bean

@ManagedBean(name = "Testes")
@RequestScoped

public class Testes {

    private String text;
    private String email;
    private String email2;

    public Testes() {

    }

    gets e seters
     public void verificarEmail(ActionEvent actionEvent){
          if(!email.equals(email2)){
             FacesContext.getCurrentInstance().addMessage(null,
                     new FacesMessage(FacesMessage.SEVERITY_INFO, "Email inválido", null));
          }
          // pode add  aqui metodo para verificar se email ja existe no sistema
    }

sem o action ou com nao acontece nd.

vlw cara

Se tu está usando o commandButton do Primefaces precisa setar ajax=false no botão.

<p:commandButton value="Verificar" actionListener="#{Testes.verificarEmail}" ajax="false"/> 

blz, cara pus nessa para teste e deu certo era esse o erro msm, mais na minha aplicaçao maior nao esta funcionando , isso tem q esta dentro de um form proprio? tem alguma regra para funcionar, vlw

O botão tem que estar entre <h:form> </h:form>

vlw pessoal consegui, mto obrigados a todos pela ajuda