6 votes

Utilisation des attributs de validation de OmniFaces Param.

Je tente d'utiliser l'annotation OmniFaces @Param pour injecter un paramètre de requête.
J'utilise également son attribut validatorClasses pour valider le paramètre. Finalement, ce validateur utilisé a besoin d'un attribut spécial pour fonctionner et je veux passer la valeur en définissant l'attribut validatorAttributes. Malheureusement, je ne sais pas comment faire. La documentation fournit une description mais je n'arrive pas à bien la comprendre.

Est-ce que quelqu'un peut aider s'il vous plait?

Voici du code :

    @Inject
    @Param(
            name = "nom_parametre",
            validatorClasses = MyFreshValidator.class,
            validatorAttributes = ?
    )
    private MyFreshClass instance;

Il serait idéal de donner un autre objet de la même classe au validateur.

5voto

BalusC Points 498232

C'est en effet légèrement caché dans la vitrine. Si vous ouvrez l'onglet CdiParamBean de la section "Source de démonstration", vous trouverez le code source du bean géré avec les exemples ci-dessous :

// Comme 
@Inject @Param(
    validatorClasses = LengthValidator.class,
    validatorAttributes = @Attribute(name="minimum", value="3"),
    validatorMessage = "{1}: La valeur est trop petite ! Veuillez entrer un minimum de 3 caractères.")
private String text2;

// Comme 
@Inject @Param(
    converterClass = DateTimeConverter.class,
    converterAttributes = { @Attribute(name="pattern", value="yyyyMMdd") },
    converterMessage="{1}: \"{0}\" n'est pas le format de date que nous avions en tête ! Veuillez utiliser le format yyyyMMdd.")
private Date date;

Ici, @Attribute est le org.omnifaces.cdi.param.Attribute.

Je vais envisager d'améliorer la documentation dans une future version.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X