tb falei numa msg anterior:
http://www.guj.com.br/java/293030-vraptor---forma-de-validacao/2#1559012
só adicionar erros de validação.
tb falei numa msg anterior:
http://www.guj.com.br/java/293030-vraptor---forma-de-validacao/2#1559012
só adicionar erros de validação.
E como eu faço pra pegar essa mensagem na tela la no success ou no error ? ?
success: function(coisa) {
// coisa é o retorno de sucesso
},
error: function(erros) {
// só pegar esse erros e fazer o que vc quiser
}
function formAjaxSubmit()
{
$.ajax({
type: "POST",
url: "/network/add",
data: {
"p_network.name" : $("#nomeRede").val(),
"p_network.comments": $("#comentarioRede").val(),
"p_network.baseIP": ip2long($("#ipRede").val()),
"p_network.mask": ip2long($("#mascaraRede").val()),
"p_network.VLanID": $("#vlanIDRede").val(),
"p_network.gateway": ip2long($("#gatewayRede").val()),
"p_network.dns": $("#dnsRede").val()
},
success: function(success) {
alert("ok");
},
error: function(error) {
alert("Erro: "+ error);
}
})
}
@Restrict
@Post("/network/add")
public void addNetwork(Network p_network)
{
if(NETWORK_SERVICE.checkExistentNetwork(p_network.getName()))
{
VALIDATOR.add(new ValidationMessage("Nome de rede existente.", "error"));
}
else
{
RESULT.nothing();
}
}
Ta imprimindo o object como faço pra pegar a mensagem que coloquei ali ? Essa era a pergunta.
Tem algo de errado nisso ?
Ficaria assim o seu controller:
if (NETWORK_SERVICE.checkExistentNetwork(p_network.getName())) {
validator.add(new ValidationMessage("Nome de rede existente.", "error"));
}
validator.onErrorSendBadRequest();
result.nothing();
e o seu ajax ficaria assim:
function formAjaxSubmit(){
//....
success: function(success) {
alert("ok"); },
statusCode: {
400: function(data) {
var resposta = JSON.parse(data.responseText);
//faz qualquer coisa com a resposta...
}
}
Beleza …
Acho que agora eu entendi … mas fiz esses passos ai e não funcionou ainda.
function formAjaxSubmit()
{
$.ajax({
//....
success: function(success) {
alert("Ok");
},
statusCode: {
400: function(data)
{
var response = JSON.parse(data.responseText);
alert("Erro:"+response);
}
}
})
}
@Restrict
@Post("/network/add")
public void addNetwork(Network p_network)
{
if(NETWORK_SERVICE.checkExistentNetwork(p_network.getName()))
{
VALIDATOR.add(new ValidationMessage("Nome de rede existente.", "error"));
}
VALIDATOR.onErrorSendBadRequest();
RESULT.nothing;
//...
ele chega a passar pelo controller?
Ta passando sim .
Tive que alterar só o endereço no ajax de “/network/add” para "network/add"
Mas ainda a mensagem não ta sendo exibida.
posta o código!
function formAjaxSubmit()
{
$.ajax({
type: "POST",
url: "network/add",
data: {
"p_network.name" : $("#nomeRede").val(),
"p_network.comments": $("#comentarioRede").val(),
"p_network.baseIP": ip2long($("#ipRede").val()),
"p_network.mask": ip2long($("#mascaraRede").val()),
"p_network.VLanID": $("#vlanIDRede").val(),
"p_network.gateway": ip2long($("#gatewayRede").val()),
"p_network.dns": $("#dnsRede").val()
},
success: function(success) {
alert("Ok");
},
statusCode: {
400: function(data)
{
var response = JSON.parse(data.responseText);
alert("Erro:"+response);
}
}
})
}
@Restrict
@Post("/network/add")
public void addNetwork(Network p_network)
{
if(NETWORK_SERVICE.checkExistentNetwork(p_network.getName()))
{
VALIDATOR.add(new ValidationMessage("Nome de rede existente.", "error"));
}
VALIDATOR.onErrorSendBadRequest();
RESULT.nothing();
// NETWORK_SERVICE.addOrUpdateNetwork(p_network);
// RESULT.nothing();
}
troca tudo por:
$.getJSON("network/add",
{
"p_network.name" : $("#nomeRede").val(),
"p_network.comments": $("#comentarioRede").val(),
"p_network.baseIP": ip2long($("#ipRede").val()),
"p_network.mask": ip2long($("#mascaraRede").val()),
"p_network.VLanID": $("#vlanIDRede").val(),
"p_network.gateway": ip2long($("#gatewayRede").val()),
"p_network.dns": $("#dnsRede").val()
}).success(function(success) {
alert("Ok");
}).error(function(data) {
alert("Erro:"+data);
}) ;
e troque de @Post("/network/add") pra @Get("/network/add")
E é correto fazer isso usando Get ? formulários de cadastro do tipo não deveriam ser requisições Post não ?
…
Funfou porém a mensagem de erro ta “Erro: Object [objetc]” … algo do tipo.
O que ? … Falei besteira ? kkkkk
n, apenas respondi atrasado, n tinha visto q o lucas tinha respondido! rs
apareceu [object Object] pq é um json… um objeto javascript…
pra vc imprimir as mensagens vc pode fazer algo como:
.error(function(messages) {
$(messages).each(function() {
alert(this.message);
});
});
Beleza… agora ta correto.
Mas a mensagem exibida esta sendo “Undefined”
E volta a pergunta … é correto usar requisições do tipo Get para cadastro e não Post ?
troque o alert por console.log(messages) e veja isso no console do browser (Developer tools no Chrome, Firebug no Firefox)
No final ta assim
responseText:"{“errors”: [{“message”: “Nome de rede existente.”,“category”: “error”}]}", status:400, statusText:“Bad Request”})
Interessante isso … usava essa ferramente mas não com log e console assim.
E ai ?