Olá Victor,
Obrigado pelo apoio! A solução foi simples, mas tenho considerado mudar para a
nova versão e explorar as novas funcionalidades que você disponibilizou.
Parabéns pelo novo site, pois o trabalho está ficando muito bom. Excelente
trabalho!
Abraços, Leo Nogueira.
--- Em lindbergframework@..., "lindbergframework" <grebdnnil@...>
escreveu
>
> Oi Leonardo, te respondi o email que vc me mandou la no lindbergframework@...
Estou copiando o email aqui para que caso mais alguem tenha essa dúvida já possa
ver aqui também.
>
> Esse foi um problema que eu identifiquei mas que na versão atual que você
> está usando não contempla ainda. O problema é que como a annotation @Valid
> é geral para qualquer validação então não tem como passar atributos
> especificos como neste caso o tamanho máximo da string fazendo com que as
> validações via annotation só sejam possiveis para validações que nao
> recebem parametros especificos.
>
> Isso já foi pensado por mim e a solução sai na proxima versão do módulo
> validations que é esse que você está usando que devo estar publicando logo
> logo.
>
> Mas na versão atual você tem como fazer o que você precisa mesclando
> validações com annotations e com as classes e fica muito simples também
> enquanto nao publico a versão com a solução para isto.
>
> Abaixo vai o exemplo.
>
> Classe Pessoa:
>
> public class Pessoa {
>
> @Valid(value = Types.REQUIRED_FIELD, msg = "Nome é requerido")
> private String nome;
>
> public Pessoa() {
> //
> }
>
> public void setNome(String nome) {
> this.nome = nome;
> }
>
> public String getNome() {
> return nome;
> }
> }
>
> Vc define a annotation de campo requerido na propria classe pessoa e a
> validação que tem atributo especifico como neste caso o tamanho maximo da
> string vc define quando for chamar o ExecutorValidation para executar as
> validações ai quando vc executar o executorValidation vai processar tanto
> a annotation quanto a validação que adicionou programaticamente como no
> exemplo abaixo:
>
> IExecutorAnnotationEngine engine =
> ExecutorFactory.newExecutorAnnotationEngine();
> Pessoa pessoa = new Pessoa();
> pessoa.setNome("teste teste teste");
>
> //aqui é adicionada a validação de tamanho máximo da string
> //informando o campo a ser validado, a mensagem e a
> //validação que neste caso é
> //obtida através de faValidationFactory.newStringMaxLength
> //passando como parametro o tamanho maximo da string.
> engine.addItem(new Item(pessoa.getNome(), "Nome maior que 5
> caracteres"),
> ValidationFactory.newStringMaxLength(5));
>
> engine.execute(pessoa);
>
>
> Este exemplo vai lançar a exceção informando que o nome é maior do que 5
> caracteres. Para verificar a validação de campo requerido via annotation é
> só setar null ou vazio no nome pessoa.setNome(""); e mandar rodar que vc
> vai ver que ele vai validar a validação definida via annotation também.
>
> Ok? Deu pra entender?
>
> Qualquer dúvida que você tiver avisa.
>
> Aproveitando, agora no final do mês estou publicando um componente do
> framework para persistencia, ta muito bom, show de bola. Até o final do
> mês o componente e um PDF com o material explicando seu uso vai ta
> publicado. Componente completo e uma solução que ajuda e muito em projetos
> que não usam nenhum framework ORM. Vale a pena conferir.
>
> Depois que eu publicar o componente de persitencia e divulgar o material
> vou fazer um upgrade no componente de validações, que é este que vc está
> usando, e esse recurso que vc me reportou será contemplado e muito mais.
>
> Deixarei mais robusto, simples e útil.
>
> Inclusive agradeço se tiver sugestões.
>
> Obrigado pela colaboração qualquer coisa favor me reportar.
>
> Abraços!
>
> Victor Lindberg
>
>
> --- Em lindbergframework@..., "leonardons80" <leonardons@>
escreveu
> >
> > Caríssimos,
> >
> > Estou tentando fazer uma simples validação de tamanho do campo, mas não
achei nenhum exemplo de como informar nas anotações o tamanho desejado.
> >
> > Alguém poderia me ajudar?
> >
> > Envio abaixo o trecho de código do meu bean o qual gostaria de informar o
tamanho:
> >
> >
> > @Validations( {
> > @Valid( value = Types.REQUIRED_FIELD ),
> > @Valid( value = Types.STRING_MAX_LENGTH )
> > } )
> > private String nomefantasia;
> >
> > Como informar simplesmente que desejo o tamanho 50 para que ele valide?
> > Abraços e obrigado a todos...
> >
>