Esse é o código que eu estou tentando fazer funcionar. O que eu mudei dele do VRaptor2 para o 3 foi a URL. Com o “success” não funcionou e então eu mudei para “complete” e entrou na function. No alert do meu data aparece um XMLHttpRequest, não sei se está certo ou como faço para ler o valor dele ou como o VRaptor trata isso. Enfim, esse é o código:
@Path("/ajax/lerObservacao/{idExame}")
public void lerObservacao(Long idExame) {
String observacao = new ExameDAO().get(idExame, false).getObservacao();
this.result.include("observacao", observacao);
this.result.use(Results.json()).from(observacao).serialize();
}
var ajaxCommon = {
lerObservacao: function(idExame) {
$.ajaxJson({
url: '/ajax/lerObservacao/'+idExame,
complete:
function(observacao) {
alert(observacao.responseText);//AQUI APARECEU ALGO ASSIM: {"string":"teste"} como pegar só o "teste" que é o valor que eu realmente quero??
alert(observacao.status);
if(observacao.status == 200){
if (observacao != null){
alert("uhul");
exibir_mensagem('Informações Clínicas',observacao.responseText);
}
else{
exibir_mensagem('Aviso','Não existem informações cadastradas.');
}
}
}
});
}
}
Aproveitando o tópico, mas sem conhecimento de causa.
As poucas vezes que utilizei ajax, tanto no VRaptor2 quanto no 3, nunca dei qualquer tratamento especial no controller.
Os dados são disponibilizados para a view da forma comum, independetente de utilizar ou não ajax.
das duas formas vc tá fazendo uma requisição usando javascript, a diferença é que uma é assíncrona e outra é síncrona… mas vc pode chamar as duas formas de ajax…