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

Struts 2 Java Discussion :

Récupérer un bean dans un interceptor


Sujet :

Struts 2 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Par défaut Récupérer un bean dans un interceptor
    Bonjour,

    J'ai 2 actions dans lesquelles j'injecte un bean via Spring. Une action pour s'authentifier et l'autre pour enregistrer un formulaire.

    Pour vérifier si l'utilisateur s'est bien loggué, j'ai créé un interceptor dans lequel il faudrait que je récupère le bean contenant les infos de l'utilisateur. Cependant, ce bean est toujours nul alors que dans mes actions, je récupère bien la bonne instance.
    Je commence à perdre patience...

    Voici mon fichier applicationContext.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC 
    	"-//SPRING//DTD BEAN//EN" 
    	"http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
    	<!-- Example of SAF2 action instantiated by Spring -->
        <bean id="creationDMPAction" class="com.toto.dmp.action.CreationDMPAction" singleton="false">
        	<property name="cpsService" ref="cpsService" />
        	<property name="userCarteCps" ref="userCarteCps" />
        </bean>
        <bean id="identificationAction" class="com.toto.dmp.action.IdentificationAction" singleton="false"> 
        	<property name="cpsService" ref="cpsService" />
        	<property name="userCarteCps" ref="userCarteCps" />
        </bean>
     
        <bean id="cpsService" class="com.toto.dmp.service.impl.CpsServiceImpl" singleton="true">
     
        </bean>
     
        <bean id="userCarteCps" class="com.toto.dmp.beans.UserCarteCps" singleton="false"/>
     
        <bean id="loginCpsInterceptor" class="com.toto.dmp.interceptor.LoginCpsInterceptor" singleton="true">
    	    <property name="cpsService" ref="cpsService" />
    	    <property name="userCarteCps" ref="userCarteCps" />
    	</bean>
     
    </beans>
    Et mon Struts.xml
    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
    33
    <struts>
    	<package name="myPackage" extends="struts-default">
     
    		<interceptors>
     
    			<interceptor name="loginCpsInterceptor" class="com.toto.dmp.interceptor.LoginCpsInterceptor"/>
    		</interceptors>
     
    		<action name="index" class="com.toto.dmp.action.IndexAction">
    			<result>/jsp/index.jsp</result>
    		</action>
     
    		<action name="creationDMP" class="com.toto.dmp.action.CreationDMPAction"> 
    			<interceptor-ref name="createSession"/>
    			<interceptor-ref name="defaultStack"/>
    			<result name="input">/jsp/creationDMP.jsp</result>
    			<result name="error_session">/jsp/index.jsp</result>
    			<result name="error">/jsp/creationDMP.jsp</result>
    			<result name="success">/jsp/confirmation.jsp</result>
    		</action>
     
    		<action name="identificationUtilisateur" class="com.toto.dmp.action.IdentificationAction" method="lancerIdentification">
                <result name="success">/jsp/creationDMP.jsp</result>
            	<result name="error">/jsp/index.jsp</result>
            	<result name="input">/jsp/index.jsp</result>
            </action>
     
            <action name="fermerSession" class="com.toto.dmp.action.IdentificationAction" method="fermerSession">
                <result name="success">/jsp/index.jsp</result>
            	<result name="error">/jsp/index.jsp</result>
            </action>
    	</package>
    </struts>
    Je récupère donc bien mon instance cpsService dans mon interceptor mais je n'arrive pas à récupérer mon instance du bean userCarteCps alors que dans mes action aucun problème...

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Par défaut
    J'ai trouvé, c'était un problème de scope!!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 12
    Par défaut
    Je me permets de relancer cette conversation car je ne comprends pas la solution de scope.

    Faut il mettre tout en singleton ? En prototype ? ou autres ? J'ai essayé plusieurs versions cela ne fonctionne pas, mon bean reste désespérément null.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Par défaut
    Alors de mémoire, j'ai mis le scope à session. Et le problème était réglé.

    J'espère que ça va t'aider...

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 56
    Par défaut
    Merci pour l'explication

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

Discussions similaires

  1. récupérer property d'un bean dans variable
    Par bonuxis dans le forum Struts 1
    Réponses: 9
    Dernier message: 03/12/2008, 14h24
  2. Réponses: 3
    Dernier message: 01/08/2008, 13h38
  3. Comment récupérer un bean dans du JSF.
    Par Evenmor dans le forum JSF
    Réponses: 1
    Dernier message: 08/05/2008, 11h56
  4. Réponses: 2
    Dernier message: 24/01/2007, 15h05
  5. Réponses: 6
    Dernier message: 30/04/2004, 15h53

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