1
resposta

Não consigo fazer comparação

Ola boa tarde ! Estou estudando java e Jquery. Estou fazendo um programinha sendo que ele faz ajax para o meu servidor e ele responde, sendo que na hora que pego o valor respondido e tendo fazer uma comparação o javaScript não faz a comparação, alguém pode me ajudar.

<tags:pageTemplate titulo="Cadastro de Cliente">

    <jsp:attribute name="testeScripts">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>        
        <script>


            var campoCPF = $("#cpf-cliente");
            campoCPF.click(validaCPF);

            function validaCPF(){
                var cpf = $("#cpf-cliente").val();
                var dados = {cpf: cpf}
                console.log(dados); //teste
                $.get("${s:mvcUrl('CC#validacaoCPF').build()}",dados,validacao);
            }

            function validacao(data){
                console.log(data);
                alert(data);
                if(data == false){
                    alert("cpf invalido");
                }
            }




        </script>
    </jsp:attribute>
    @ResponseBody 
    @RequestMapping("/validadeCPF")
    public String validacaoCPF(String cpf){
        System.out.println(cpf);
        cpf = cpf.substring (1);
        System.out.println(cpf);

        ValidadoresDeCPFeCNPJ valida = new ValidadoresDeCPFeCNPJ();
        try{

            String cpfDesformatado = valida.desformataDocumento(new CPFFormatter(), cpf);
            valida.validaDocumentos(new CPFValidator(), cpfDesformatado);

            return "true";

        }catch(InvalidStateException e){
            System.out.println("CPF Invalido");    
            return "false";
        }

    }
1 resposta

Oi Maycon,

Pode ser porque no controller você está devolvendo o valor como String, mas no JavaScript está comparando como boolean:

if(data == false)

Troque para o seguinte código e veja se funciona:

if(data == "false")