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 :

Surcharger ResourceBundleMessageSource et récupérer le bean messageSource


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut Surcharger ResourceBundleMessageSource et récupérer le bean messageSource
    Bonjour,

    Depuis un moment, j'utilise un bean messageSource de classe ResourceBundleMessageSource pour l'internationalisation de Spring. Ca marchait très bien, mais maintenant, j'ai voulu étendre cette classe pour ajouter des fonctionnalités :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    public class JThequeResourceBundle extends ResourceBundleMessageSource implements EditableResourceBundle {
        private String coreBaseName;
     
        private final List<String> baseNames = new ArrayList<String>(10);
     
        @PostConstruct
        public void init(){
            addBaseName(coreBaseName);
            addBaseName(Managers.getCore().getApplication().getBaseName());
     
            refresh();
        }
     
        @Override
        public void addBaseName(String baseName){
            baseNames.add(baseName);
        }
     
        @Override
        public void removeBaseName(String baseName){
            baseNames.remove(baseName);
        }
     
        @Override
        public void refresh(){
            setBasenames(baseNames.toArray(new String[baseNames.size()]));
        }
     
        public void setCoreBaseName(String coreBaseName) {
            this.coreBaseName = coreBaseName;
        }
    }
    Et j'ai modifié la description XML du bean :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean id="messageSource" class="org.jtheque.core.managers.language.JThequeResourceBundle">
         <property name="coreBaseName" value="${coreBaseName}" />
    </bean>

    Et depuis, quand je récupére le bean "messageSource", j'ai un objet de type DelegatingMessageSource et je suis obligé de récupérer le parentMessageSource.

    Est-ce qu'il y a un moyen pour éviter de passer par ce DelegatingMessageSource ou est-ce que je suis obligé de passer par lui ?

    Merci

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Par défaut
    Dans la doc, je vois ceci :

    Empty MessageSource that delegates all calls to the parent MessageSource. If no parent is available, it simply won't resolve any message.

    Used as placeholder by AbstractApplicationContext, if the context doesn't define its own MessageSource. Not intended for direct use in applications
    Ma question, est-ce que tu as une hierarchie de contexte de Beans?
    ( exemple un ContextLoaderListener qui charge XXX fichiers, et un fichier de Servlet Spring MVC ? ou plusieurs ApplicationContext chargé à différent endroit )
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Effectivement, j'ai deux application context

    core
    ->modules

    core est le parent de modules. C'est logique donc En fait, c'est seulement lorsque je passe au contexte "modules" que je récupère ce DelegatingMessageSource.

    Merci beaucoup

Discussions similaires

  1. Récupérer un bean
    Par Viscapon dans le forum Struts 1
    Réponses: 8
    Dernier message: 13/02/2009, 19h28
  2. Réponses: 3
    Dernier message: 01/08/2008, 13h38
  3. Récupérer un bean via un web service
    Par PeterEMF dans le forum Flex
    Réponses: 3
    Dernier message: 03/06/2008, 14h13
  4. Comment récupérer un bean dans du JSF.
    Par Evenmor dans le forum JSF
    Réponses: 1
    Dernier message: 08/05/2008, 11h56
  5. Récupérer un bean d'un .java
    Par Lorenzox dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/02/2008, 09h19

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