4
respostas

Spring mvc com ajax.

Boa tarde, galera!

Estou fazendo chamada ajax via jquery e quando eu chamo ajax ele para na validação dos campos, gostaria de desabilitar essa validação na chamada ajax.

Att,

Fernando Hiar.

4 respostas

Bom dia!

Compartilha o código no forum por favor. Somente com sua explanação, não temos como lhe ajudar.

Bons estudos!

meu javascript que contem o ajax

function comboMunicipio(url, id, parametro) {
     var base = window.location.href.substring(0,window.location.href.lastIndexOf("/")) + url;
     alert(base);
     $.ajax({
             url: base,
             type: 'POST',
             data : id.concat('=').concat(parametro),
             dataType: 'json',
             success: function(data) {
                  var selectbox = $('#municipios');
                  selectbox.find('option').remove();
                  $.each(data, function (key, value) {
                     $('<option>').val(value.codMunicipio).text(value.descricao).appendTo(selectbox);
                  });   
             },
             error: function(e) {
                 alert("falha");
             },
     });
}

function comboBairro(url, id, parametro) {
    var base = window.location.href.substring(0,window.location.href.lastIndexOf("/")) + url;
    $.ajax({
            url: base,
            type: 'POST',
            data : id.concat('=').concat(parametro),
            dataType: 'json',
            success: function(data) {
                 var selectbox = $('#bairros');
                 selectbox.find('option').remove();
                 $.each(data, function (key, value) {
                    $('<option>').val(value.codMunicipio).text(value.descricao).appendTo(selectbox);
                 });   
            },
            error: function(e) {
                alert("falha");
            },
    });
}

meu controlle

package br.com.fractal.mercado.cadastramento.controller;

import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.fasterxml.jackson.core.JsonProcessingException;

import br.com.fractal.mercado.cadastramento.base.BaseController;
import br.com.fractal.mercado.cadastramento.models.Mercado;
import br.com.fractal.mercado.cadastramento.service.BairroService;
import br.com.fractal.mercado.cadastramento.service.EstadoService;
import br.com.fractal.mercado.cadastramento.service.MunicipioService;
import br.com.fractal.mercado.cadastramento.validation.CadastroEmpresaValidation;
import br.com.fractal.mercado.cadastramento.vo.BairroVO;
import br.com.fractal.mercado.cadastramento.vo.EstadoVO;
import br.com.fractal.mercado.cadastramento.vo.MunicipioVO;

@Controller
public class CadastroMercadoController extends BaseController {

    @Autowired
    private MunicipioService municipioService;

    @Autowired
    private EstadoService estadoService;

    @Autowired
    private BairroService bairroService;

    public CadastroMercadoController() {
        super();
    }

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.addValidators(new CadastroEmpresaValidation(messageSource));
    }

    @RequestMapping(value = "/cadastrarMercado", method= RequestMethod.GET)
    public ModelAndView cadastrarMercado(ModelMap model) {
        ModelAndView cadastrarMercado = new ModelAndView("cadastrar/mercado/cadastrarMercado");
        model.addAttribute("mercado", new Mercado());
        model.addAttribute("estados", estadoService.consultarEstados());
        return cadastrarMercado;
    }


    @RequestMapping(value = "/consultarMunicipios", method= RequestMethod.POST)
    @ResponseBody
    public String consultarMunicipios(@RequestBody String codigoMunicipio, ModelMap model) {
        String municipioJson = "";
        EstadoVO estadoVO = new EstadoVO();
        estadoVO.setCodEstado(quebrarAtributoInt(codigoMunicipio));
        List<MunicipioVO> municipios = municipioService.consultarmunicipios(estadoVO);
        if(municipios != null && !municipios.isEmpty()) {
            try {
                municipioJson = converterJson(municipios);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }

        return municipioJson;
    }

    @RequestMapping(value = "/consultarBairros", method= RequestMethod.POST)
    @ResponseBody
    public String consultarBairros(@RequestBody String codigoBairro, ModelMap model) {
        String bairroJson = "";
        MunicipioVO municipio = new MunicipioVO();
        municipio.setCodMunicipio(quebrarAtributoInt(codigoBairro));
        List<BairroVO> bairros = bairroService.consultarBairros(municipio);
        if(bairros != null && !bairros.isEmpty()) {
            try {
                bairroJson = converterJson(bairros);
            } catch (JsonProcessingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return bairroJson;
    }

    @RequestMapping(value = "/mercadoCadastrado", method= RequestMethod.POST)
    public ModelAndView mercadoCadastrado(@Valid Mercado mercado, BindingResult result, ModelMap model) {

        if(result.hasErrors()) {
            ModelAndView cadastrarMercado = new ModelAndView("cadastrar/mercado/cadastrarMercado");
            model.addAttribute("estados", estadoService.consultarEstados());
            return cadastrarMercado;
        }

        ModelAndView loginView = new ModelAndView("redirect:/cadastrarMercado");
        return loginView;
    }

}

meu validation:

package br.com.fractal.mercado.cadastramento.validation;

import org.springframework.context.MessageSource;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

import br.com.fractal.mercado.cadastramento.base.BaseValidation;
import br.com.fractal.mercado.cadastramento.models.Mercado;

public class CadastroEmpresaValidation extends BaseValidation implements Validator {


    public CadastroEmpresaValidation() {
        super();
    }

    public CadastroEmpresaValidation(MessageSource messageSource) {
        this.messageSource = messageSource;
    }

    @Override
    public boolean supports(Class<?> param) {
        return Mercado.class.isAssignableFrom(param);
    }

    @Override
    public void validate(Object obj, Errors errors) {
        Mercado mercado = (Mercado) obj;
        ValidationUtils.rejectIfEmpty(errors, "nome", "field.required", null, this.messageSource.getMessage("mercado.cadastrar.error.nome", null, null));

        if(mercado != null) {
            if(validarCnpj(mercado) == false) {
                errors.rejectValue("cnpj", "field.required", null, this.messageSource.getMessage("mercado.cadastrar.error.cnpj", null, null));
            }
//            if(mercado.getCodEstado() == null || mercado.getCodEstado() <= 0) {
//                errors.rejectValue("estados", "field.required");
//            }
//            
//            if(mercado.getCodMunicipio()== null || mercado.getCodMunicipio() <= 0) {
//                errors.rejectValue("municipios", "field.required");
//            }
//            
//            if(mercado.getCodBairro() == null || mercado.getCodBairro() <= 0) {
//                errors.rejectValue("bairros", "field.required");
//            }

            if(mercado.getLogradouro() == null || mercado.getLogradouro().length() < 3) {
                errors.rejectValue("logradouro", "field.required", null, this.messageSource.getMessage("mercado.cadastrar.error.logradouro", null, null));
            }

            if(mercado.getNumero() == null || mercado.getNumero() <= 0) { 
                errors.rejectValue("numero", "field.required", null, this.messageSource.getMessage("mercado.cadastrar.error.numero", null, null));
            }

            if(!validarEmail(mercado.getEmail())) {
                errors.rejectValue("email", "field.required", null, this.messageSource.getMessage("mercado.cadastrar.error.email", null, null));
            }
        }



    }

    private boolean validarCnpj(Mercado mercado) {
        boolean validaCnpj = false;
        if(mercado.getCnpj().length() > 0) {
            String cnpjSemFormatacao = retirarFormatacaoCnpj(mercado.getCnpj());
            if(cnpjSemFormatacao != null && cnpjSemFormatacao.length() == 14) {
                String cnpj = validarCnpjSegundoDigitoVerificador(validarCnpjPrimeiroDigitoVerificador(cnpjSemFormatacao));
                validaCnpj = (cnpj.subSequence(cnpj.length() - 2, cnpj.length()) == cnpjSemFormatacao.substring(cnpjSemFormatacao.length() - 2, cnpjSemFormatacao.length()));
            }
        }    
        return validaCnpj;
    }



}