1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Bean Validation

Bom dia,

estou usando o BeanValidation porém não queria ter que usar aquelas validações customizadas para o seguinte cenário:

quando tenho que validar 2 propriedades mas não quero @NotNull para ambas, quero poder aceitar uma ou outra nula, procurando na especificação e documentos na internet achei alguns exemplos usando Asserts, como:

@NotNull @Assert(script="_param.after(arg1)", lang="javascript") Date to) {}

para o meu caso, alguém já fez assim? que possa me ajudar? abraços.

ninguém?????????????

todo mundo fica fazendo isso?

public class ConferirExclusaoValidator implements ConstraintValidator<ConferirExclusao, List<SolicitacaoExclusaoDTO>> {

    @Override
    public void initialize(ConferirExclusao arg0) {

    }

    @Override
    public boolean isValid(List<SolicitacaoExclusaoDTO> arg0, ConstraintValidatorContext arg1) {

        if (arg0 == null) {

            return false;
        }

        if(arg0.size() <= 0){
            return false;
        }

        return true;
    }
}

Annotation

@Target({ ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { ConferirExclusaoValidator.class })
@Documented
public @interface ConferirExclusao {

    String message() default "Ao menos um item deve ser selecionado.";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
  • Cria sua própria anotação e valida via reflection.

    João Paulo Cardoso   01 de jun de 2014
  • obrigado por responder João Paulo, eu optei por uma abordagem mais simplificada, fazendo melhor uso do BeanValidation, como estou trabalhando com EJB e com módulos, no módulo web eu dei preferência a não ter estas várias contraints validando, eu gosto da tua solução, mas também estou evitando muitas customizações com annotations pois isto no meu ver, deixa o código um pouco mais complexo(pensando nos outros desenvolvedores da equipe), mesmo assim agradeço ter vindo aqui postar.

    Dilnei Cunha   01 de jun de 2014
  • Eu estava usando o bean validation, ele validava até onde não precisava, pensando nisso resolvi criar minhas próprias anotações. Mas entendo sua situação. :D

    João Paulo Cardoso   01 de jun de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java-ee java ou faça a sua própria pergunta.