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 Web Java Discussion :

Spring + TagSupport et injection de dépendance


Sujet :

Spring Web Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 65
    Points
    65
    Par défaut Spring + TagSupport et injection de dépendance
    Bonjour,

    J'ai rencontre un petit problème, j'aimerais savoir s'il est possible d'utiliser spring pour faire de l'injection de dépendance dans un tag que je défini moi même.
    Plus précisément voici la définition du tag :

    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
    public class FlashTag extends TagSupport {
     
        private INewsManager newsManager = null;
     
        public final void setNewsManager(INewsManager manager){
            this.newsManager = manager;
        }
     
        public int doStartTag() {
            try{
                News flash = newsManager.getNewsFlash();
                JspWriter jw = pageContext.getOut();
                jw.println(flash.getTexte());
            }
            catch(IOException ioe){}
            return SKIP_BODY;
        }    
    }
    et en fait j'aimerais injecter un "newsManager "

    dans applicationContext.xml j'ajoute un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean name="FlashTld" class="struts.tags.FlashTag">
            <property name="newsManager" ref="NewsManager"/>
        </bean>
    Mais comme vous pouvez vous en douter, cela ne marche pas (nullpointerException au moment d'utiliser le manager).

    Mes questions sont les suivantes :
    1- Est ce que ce que j'ai dans la tête est possible ?
    2- Si oui par quel biais ?
    Si tu ne peut pas battre ton ordinateur aux echecs, essaye le kick boxing

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 40
    Points
    40
    Par défaut static ?
    Si je comprends bien le fonctionnement de Spring et des tags, le problème vient du fait qu'une instance de FlashTag avec son attribut NewsManager correctement initialisé est crée en tant que bean dans l'ApplicationContext, mais que dans les pages JSP ou autres où tu utilises ce tag, de nouvelles instances sont dynamiquement crées. Ces dernières n'ont donc pas la bonne valeur pour cet attribut.

    Un contournement (je ne dis pas que c'est la panacée) serait peut-être de rendre statique l'attribut. La création de la première instance dans le fichier Spring va donc initialiser cet attribut statique et le rendra utilisable pour toutes les autres instances.

    Bref, je ne garantis pas que cela fonctionne, mais cela ne coûte pas cher d'ajouter le mot-clef static aussi bien devant l'attribut que devant l'accesseur.

    (Ce serait sympa de dire si ça marche ou pas )

    HTH

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 65
    Points
    65
    Par défaut
    Comme quoi, on pense rarement aux solutions les plus simples en premier
    En effet ça fonctionne merci MarkH
    Si tu ne peut pas battre ton ordinateur aux echecs, essaye le kick boxing

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Framework] Problème injection de dépendance Spring + JSF
    Par wahhh dans le forum Spring
    Réponses: 1
    Dernier message: 02/04/2015, 23h56
  2. Réponses: 0
    Dernier message: 12/05/2013, 15h52

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