estou começando agora com o Vraptor3 acabei de sair do Struts2 e estou gostando bastante porém tenho algumas dúvidas!!!
Estou gerando erros de varias categorias diferentes:
if(pais.getNome().isEmpty())
validator.add(new ValidationMessage("Campo Nome é obrigatório!", "erroNome"));
if(pais.getSexo().isEmpty())
validator.add(new ValidationMessage("Campo Sexo é obrigatório!", "erroSexo"));
validator.onErrorUse(Results.page()).of(PaisController.class).cadastro();
eu queria saber se o único jeito de exibir os erros na minha página seria dentro dor forEach
ou se tem alguma forma de eu identificar na minha jsp de qual categoria se trata aquele erro e exibir abaixo de cada campo o erro de acordo com o campo…
A idéia do forEach é para o caso de vir mais de um erro.
Mas se você retornar sempre apenas uma mensagem, você pode pega-la utilizando a posição do array 0.
Algo como:
[quote=yorgan]A idéia do forEach é para o caso de vir mais de um erro.
Mas se você retornar sempre apenas uma mensagem, você pode pega-la utilizando a posição do array 0.
Algo como:
yorgan, então como vc viu no meu código eu não retorno apenas um erro eu retorno “N” erros porém para cada erro de uma categoria “X” eu gostaria de exibir em um lugar diferente.
eu não quero exibir todos os erros de categorias diferentes no mesmo lugar.
Mas daí você teria que criar categorias mais genéricas.
[]´s
Daniel[/quote]
Eu até pensei em fazer isso mais achei que ficaria muito “ESCROTO” meu código.
imagina q eu tenho um formulario com 15 campos para serem preenchidos e quero incluir os erros de cada campo ao lado do campo ou abaixo de cada campo, então vc me sugere ter 15 forEach na minha jsp…
como já havia comentado eu venho do Struts2 q no aspecto de validação é bastante simples e comum este tipo de coisa!!!
achei q no vraptor3 existisse alguma coisa do tipo assim:
[quote=yorgan]Mas você quer criar uma categoria para cada campo?
Não pode ser apenas error, warn e info?
[/quote]
Não necessariamente!
eu só coloquei os nomes da categorias de acordo com os nomes dos campos pq eu achei q dessa forma tivesse como eu encontrar na jsp e colocar cada categoria proximo ao campo referenciado.
porém se tiver alguma outra forma de fazer isso que quero fazer, identificar qual é o erro e colocar no seu local de acordo com o campo. ótimo!!!
não tem nada pronto ainda no VRaptor pra exibir erros por categoria… você pode usar a sugestão do garcia mesmo…
essas validações que aparecem nos campos podem ser feitas só do lado do cliente, usando javascript, para evitar que a requisição seja feita com dados inválidos…
quanto a fazer algo do tipo ${errors.nomeDaCategoria} a gente pode até tentar fazer, mas não sei se a Expression Language suporta esse tipo de coisa… abra uma issue em http://github.com/caelum/vraptor/issues sobre isso por favor? se possível em ingles linkando pra essa conversa…
Agora lembrei… uma coisa que pode ser feita, causando menos impacto na aplicação nem no vraptor é fazer uma taglib que procure dentro do list de mensagens alguma mensagem para esse campo.
Porém há dois problemas: um pelo overhead de varrer o list várias vezes; e outra pelo fato de usar o campo categoria com o nome do campo, isso fica estranho já que o campo category indica outras coisas como ERROR, INFO, WARN.
um jeito fácil de fazer isso é criar um interceptor que converte a lista de messages em um mapa de categoria/erro… e logo após adicionar isso no result, com um nome diferente de errors
eu até tinha pensado em criar uma tld que procurasse dentro da list de erro a categoria, mais tbm não achei interessante não ia ter o forEach na jsp, mas continuaria varrendo a list escondido na tld…
mas Obrigado pela força agora vou analisar as opções enviadas e escolher a melhor para o meu projeto!!!