Tenho o seguinte envio via post no meu formulário jsp com ajax do JQuery:
[code]
$.ajax({
type: 'POST',
url: contextoDaAplicacao + '/grupoDeAvaliacao/persistirTurma',
data: 'turma.grupoDeAvaliacao.id='+escape(valoresTurma[0])+
'&turma.idCurso='+escape(valoresTurma[1])+
'&turma.ano='+escape(valoresTurma[2])+
'&turma.serie='+escape(valoresTurma[3])+
'&turma.semestre='+escape(valoresTurma[4])+
'&turma.turno='+escape(valoresTurma[5])+
'&turma.turma='+escape(valoresTurma[6]),
cache: false,
success: function( data ) {
alert(data);
}
});
[/code]
E tenho o seguninte código no meu método "persistirTurma()" do controller de recepção:
[code]
public String persistirTurma(Turma turma) throws Exception {
try {
daoFactory.getTurmaDao().persistir(turma);
return "ok";
} catch (EntidadeExistenteException erro) {
return "erro";
}
}
[/code]
O problema é que o "sucess" da minha chamada ajax não funciona. Ele consegue persistir a turma no banco de dados mas a mensagem de alerta do "success" do ajax não é exibida. Alguém sabe me dizer o que pode ser isso? Conto com o apoio de vocês.
Ele me mostra uma mensagem mostrando status 404 quanto tenta procurar persistirTurma.jps. Ou seja, ao terminar a execução do método no controller o vraptor está redirecionando para a página referente á action do controller, o que não deveria acontecer, pois como é ajax deveria voltar para a mesma página. Alguém sabe como configurar isso?
Ops, é isso mesmo, no lugar do “;” é “,” . Essas funções ajax são bem chatinhas de fazer, o que está no manual às vezes não funciona, tipo, vc está começando a função com $ajax, aqui só funcionou colocando $.post, e depois do código mandando os dados pro Controller tenho aquela function() pra mostrar o alerta.
[]s
Então, pelo visto é outra coisa cara. Acho que é problema de redirecionamento do VRaptor mesmo, ao terminar a execução do método ele tenta redirecionar para uma página que não existe e dá erro. Por isso o success não funciona. Agora resta saber como faço para redirecionar para a página que chamou o método.