worldsoft
Sandro Mueller:
Oi pessoal,
tenho um método que me retorno um arquivo no Vraptor, mas como faço pra enviar uma msg caso o arquivo não exista?
segue código abaixo:
@Path("/geradorDeDocumentos/carregaFiltroJson")
public File carregaFiltroJson(String caminhoDocumento){
File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
if (file != null){
return file;
}else{
return null;
}
}
teria que ser algo do tipo, mas o java não permite… :):
@Path("/geradorDeDocumentos/carregaFiltroJson")
public File carregaFiltroJson(String caminhoDocumento){
File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
if (file != null){
return file;
}else{
result.use(ExtJSJson.class).from("Arquivo inexistente.").success(false).serialize();
}
}
Alguém poderia me ajudar?
Desde já, Obrigado.
Não sei se seria o correto a fazer, mais você já olhou sobre os Validator do Vraptor, talvez possa te ajudar.
Lucas_Cavalcanti
vc pode usar o validator e retornar null, que o vraptor vai usar o outro resultado ao invés do download.
Sandro_Mueller
Oi Lucas, o add do Validator aceita somente a Interface Message, eu tenho que implementar esta interface?
Lucas_Cavalcanti
vc pode usar:
validator.add(new ValidatorMessage("Minha mensagem", "campo"));
http://vraptor.caelum.com.br/documentacao/validacao/
Sandro_Mueller
Lucas Cavalcanti:
vc pode usar:
validator.add(new ValidatorMessage("Minha mensagem", "campo"));
http://vraptor.caelum.com.br/documentacao/validacao/
pois é eu tinha visto na documentação, mas se eu fizer assim pede pra mim fazer um cast pra Message.
Fiz conforme abaixo pra dar certo, mas não gostei da classe aninhada…
validator.add(new Message() {
public String getMessage() {
return "teste mes";
}
public String getCategory() {
return "teste cat";
}
});
validator.onErrorUse(ExtJSJson.class).from("Arquivo não encontrado").success(false).serialize();
return file;
Lucas_Cavalcanti
tem que importar o ValidationMessage do VRaptor, deveria funcionar de boa
Lucas_Cavalcanti
em todo caso vc pode usar o result direto, sem validator:
if (file != null) return file;
else {
result.use(ExtJSJson.class)....;
return null;
}
talvez fique mais simples assim.
Sandro_Mueller
Lucas Cavalcanti:
em todo caso vc pode usar o result direto, sem validator:
if (file != null) return file;
else {
result.use(ExtJSJson.class)....;
return null;
}
talvez fique mais simples assim.
funcionou… Obrigado.