Boa tarde a todos, tenho a seguinte arquitetura:
[code]$(".botao-acao").click(function(){
if(validarForm()){
var formJSON = getJSON($("#form-geral")); //método que serializo meu formulário e o transformo em um json
var acao = $(this).data("action"); // /cliente/salvar
var metodo = $(this).data("metodo"); // 'POST'
ajaxSubmit(metodo, acao, formJSON, function(resultadoEmJSON){
// AQUI ESTÁ O MEU PROBLEMA: COMO RECEBER O RESULTADO COMO JSON E RENDERIZAR OS RESULTADOS?
alert(resultadoEmJSON.toSource());
setGeralMensagens(msg, "Sucesso", CLASSE_SUCESSO, IMG_SUCESSO);
});
}
});
function ajaxSubmit(metodo, acao, form, callback){
$.ajax({
type: metodo,
url: acao,
data: form,
success: callback
});
}
[/code]
E no controlador tenho:
[code]@Post("/cliente/salvar")
public void salvarCliente(Cliente cliente){
try {
cliente = clienteBO.salvar(cliente);
result.include(“message”, “Cliente salvo com sucesso!”)
.include(cliente).forwardTo(this).clienteMan();
//result.use(Results.json()).withoutRoot().from(result).serialize();
} catch (BusinessException e) {
e.printStackTrace();
result.include("error", e.getMessage()).forwardTo(this).clienteMan();
}
}
[/code]
A minha dúvida é relativa ao callback da requisição ajax. Gostaria de saber como faço para receber os dados incluídos no objeto result do controlador em JSON para poder manipulá-los e como renderizar o resultado após a manipulação dos dados (json)?
Por exemplo: quero poder pegar o cliente do result da seguinte forma para então exibir seu nome junto com a message no meu dialog: (claro que eu poderia colocar o nome do cliente no result do controlador, este é apenas um exemplo)
Para ilustrar, o dialog:
<div id="dlg-mensagens">
<span id="imagem-dlg" style="float:left; width:80px"></span>
<label id="mensagem-dlg">
<c:if test="${not empty error}">${error}</c:if>
<c:if test="${not empty message}">${message}</c:if>
</label>
</div>
