Fiz um cadastro de usuários. Toh usando uma biblioteca pra validação q usa jquery. Criei o seguinte script q valida o formulário antes de enviar:
function validarFormulario(){
$('#usuario').validate({
rules:{
nome:{required: true, rangelength:[3,50]},
sobrenome:{required: true, rangelength:[3,50]},
username:{required: true, rangelength:[3,25]},
password:{required: true, rangelength:[6,30]},
repSenha:{required: true, equalTo: "#password"},
email: {required: true, email: true}
},
submitHandler: function(form){
$("#enviar").attr("disabled","disabled");
$.post('salvar.html', $('#usuario').serialize(), function(data){
salvar(data); //crie esta função q vai receber o JSON de retorno e tratá-lo
});
}
}
);
}
No controller fiz algo parecido com isso:
@RequestMapping(value="/blablabla", method=RequestMethod.POST)
public @ResponseBody Map<String, String> blablabla(@Valid Usuario usuario, BindingResult result){
Map<String, String> json = new HashMap<String, String>();
try{
//tenta salvar no banco
json.put("sucesso", "sucesso");
return json;
}
catch (DataIntegrityViolationException e) {
json.put("erro", "tipoerro");
return json;
}
catch (Exception e) {
json.put("erro", "inesperado");
return json;
}
}
Algumas coisas eu simplifiquei para nao expor o código totalmente e não confundi-lo.
Dá uma olhada em http://blog.springsource.org/2010/01/25/ajax-simplifications-in-spring-3-0/ tem um outro exemplo. Foi a partir deste tópico q comecei a mexerr com ajax no spring. Me ajudou bastante. Detalhe para usar