IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

externalisation attribut annotation


Sujet :

Spring Java

  1. #1
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 67
    Points : 48
    Points
    48
    Par défaut externalisation attribut annotation
    bonjour

    j'utilise les annotation pour valider des attributs de mes objects domain.
    Je souhaiterai externaliser certains attributs de l'annotation.

    Parr exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     @Pattern (regexp = ".+@.+\\.[a-z]+")
        private String email = "?";

    je voudrais pouvoir externaliser la valeur du pattern dans un fichier et avoir un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     @Pattern (regexp = "#properties.key1")
        private String email = "?";
    Une idée ?


    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @Pattern( regexp = "${property_name}" )
    dans some_file.properties
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    property_name=property_value
    dans le appContext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <context:property-placeholder
    		location="classpath:/some_file.properties,
                     ..." />
    (ou équivalent avec un bean "PropertyPlaceholderConfigurer"...)

    attendez-vous à jurer quelque peu pour trouver le bon nombre de \ à mettre dans le property_value pour que le regexp soit correct...

  3. #3
    Membre du Club
    Inscrit en
    Août 2002
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 67
    Points : 48
    Points
    48
    Par défaut
    j'ai donc ajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <context:property-placeholder location="./ValidationMessages.properties" />
    Le fichier ValidationMessages.properties contient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PATTERN_EMAIL=.+@.+\\.[a-z]
    l'annotation devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    @Pattern(regexp = "${PATTERN_EMAIL}")
        @NotEmpty(message = "#mess3")
        private String email = "?";
    Mais j' ai l'exception au chargement de l'application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Caused by: java.util.regex.PatternSyntaxException: Illegal repetition near index 0
    ${PATTERN_EMAIL}
    En gros, il essai d''evaluer le pattern ${PATTERN_EMAIL} qui, bien sur , n'a aucun sens. Il ne remplace donc pas la valeur par celle du fichier property

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 27
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Pour moi, une façon de faire est d'écrire ta propre annotation de validation qui permettrait de prendre en compte ta spécificité.

    L'autre façon est d'écrire ton propre LocalValidatorFactoryBean (en dérivant de localValidatorFactoryBean ) qui permettrait de gérer tes différents besoins pour l'ensemble des annotations de validation

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/04/2015, 14h09
  2. Traitement attribut annotation
    Par plawyx dans le forum Général Java
    Réponses: 4
    Dernier message: 07/08/2012, 15h45
  3. [MVC] SpringMVC Annotation gestion des attributs
    Par ray_fab dans le forum Spring Web
    Réponses: 1
    Dernier message: 24/12/2010, 21h30
  4. À propos des attributs annotés @Id
    Par Atatorus dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/07/2009, 14h55
  5. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo