Fala galera, nao sei nem se estou postando no lugar correto, mas como meu projeto é baseado no vraptor, to postando aqui.
É o seguinte, eu tenho um campo no formulario que ao digitar o codigo e dar um tab, ele preenche o formulario.
Mas quando o código não é encontrado, um erro é lançado no console, mas eu não consigo passar isso para a tela em forma de mensagem de erro.
Alguem tem uma ideia de como fazer isso?
Eu to usando o success, error, complete do $.ajax, mas quando o código não é encontrado simplesmente ele não entra em nenhum destes.
No success, ele não entra no meu else quando o código não é encontrado.
No complete eu pus uns alerts pra ver se ele iria mostrar algo, mas não mostra nada. Taí o código.
controller
@Get("/produtos/buscaid")
public Produto busca(Long id){
result.include("id",id);
return pdao.busca(id);
}
@Get("/produtos/buscaid.json")
public void buscaidJson(Long q){
try {
result.use(json()).withoutRoot()
.from(pdao.busca(q))
.include("categoria")
.serialize();
} catch (Exception e) {
System.out.println("Produto não encontrado!");
}
}
formulario
$('#id').blur(function(){
$.ajax({
url: '<c:url value="/produtos/buscaid.json"/>',
type: 'GET',
data: {'q':$('#id').val()},
dataType: 'json',
success: function (produto){
if(produto.nome != null || produto.nome != ''){
$('#nome').val(produto.nome);
$('#descricao').val(produto.descricao);
$('#preco').val(produto.preco);
$('#categoria_id').val(produto.categoria.id_categoria);
$('#categoria').val(produto.categoria.descricao);
} else {
alert('Produto não encontrado!');
$('#nome').val('');
$('#descricao').val('');
$('#preco').val('');
$('#categoria_id').val('');
$('#categoria').val('');
}
},
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
},
complete: function(produto){
if(produto.nome != null || produto.nome != ''){
alert('teste de acerto!');
}
else {alert('teste de erro!');}
}
});
});
Obrigado pra quem ajudar 