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 :

Problème d'accès à un session scoped bean à partir d'un controller


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut Problème d'accès à un session scoped bean à partir d'un controller
    Bonjour,

    J'ai un problème d'accès à un bean avec scope "session" à partir d'un controller.
    Le test que je fais : J'initialise le bean à partir d'un controller, et j'essaye d'y accéder à partir d'un autre controller.
    Ci-dessous les code source :

    spring-servlet.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <bean id="login" class="gestionmagasin.attribute.Login" scope="session">
          <!-- this next element effects the proxying of the surrounding bean -->
          <aop:scoped-proxy />
          </bean>
    Fichier Login.java :


    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
    @Component
    public class Login implements Serializable {
     
    	private String login;
    	private String motpasse;
    	public String getLogin() {
    		return login;
    	}
    	public void setLogin(String login) {
    		this.login = login;
    	}
    	public String getMotpasse() {
    		return motpasse;
    	}
    	public void setMotpasse(String motpasse) {
    		this.motpasse = motpasse;
    	}
     
    }
    Mon premier controller ayant comme attribut un objet de type Login et qui initialise cet objet :

    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
    @Controller
     
    @RequestMapping("/")
    public class DefaultControler {
    	@Resource(name="defaultService")
    	private DefaultService DefaultService;
    	 @Autowired
    	   private Login login;
     
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    	    public String connectUser(@ModelAttribute("connectionAttribute") Login login, Model model){
     
    		this.login = login;
    	    		if (DefaultService.getUserFromLoginPassword(login.getLogin(), login.getMotpasse()) != null){
    	    			model.addAttribute("currentuser", DefaultService.getUserFromLoginPassword(login.getLogin(), login.getMotpasse()));
    	    	System.out.println("valeur de login dans DefaultContoler" + this.login.getLogin());
    	    			return "Admin_index";
    	    		} else return "index";
     
     
    		}
    Le premier contoler initialise bien l'attribut login (this.login.getLogin() retourne la bonne valeur)

    Mon deuxième controller :

    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
    @Controller
     
    @RequestMapping("/employe")
    public class EmployeControler {
    	@Resource(name="employeService")
    	private EmployeService employeService;
    	 @Autowired
    	   private Login login;
    @RequestMapping(value = "/formajoutemploye")
    	    public String ajoutemploye(Model model){
     
    		System.out.println("valeur de login dans le controller EmployeControler : " + login.getLogin());
    		model.addAttribute("currentuser2", login);
     
    			return "CreationEmploye";
    		}
    Et là, dans ce controller, login.getLogin() retourne null !

    Quelqu'un peut m'aider svp ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    As-tu le ContextLoaderLister dans ton web.xml?

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
      </listener>


    A+.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Par défaut Problème d'accès à un session scoped bean à partir d'un controller
    Bonjour,

    Finalement, j'ai pu résoudre le problème en créant un service qui gère le bean à portée session et l'intégrant dans mon controler :

    Dans spring-servlet.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <bean id="currentUser" class="atrigui.gestionmagasin.attribute.CurrentUser" scope="session">
          <!-- this next element effects the proxying of the surrounding bean -->
          <aop:scoped-proxy />
          </bean>

    CurrentUserServiceIimpl.java

    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
     
    @Service("currentUserService")
     
     
    public class CurrentUserServiceImpl implements CurrentUserService {
     
    	CurrentUser currentUser;
     
    	public CurrentUser getCurrentUser(){
    		return currentUser;
    	}
    	public void setCurrentUser(CurrentUser user){
    		this.currentUser= user;
     
    	}
     
     
     
    }
    Dans le controler :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @Autowired
    private CurrentUserService currentUserServiceImpl;
    .
    .
    .
    model.addAttribute("currentuser", currentUserServiceImpl.getCurrentUser());

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/08/2013, 11h05
  2. [2.x] Problème d'accès de Session sous les Tests Fonctionnels
    Par symfolive dans le forum Symfony
    Réponses: 1
    Dernier message: 18/07/2012, 18h54
  3. Réponses: 3
    Dernier message: 14/04/2011, 17h46
  4. Réponses: 8
    Dernier message: 27/03/2008, 15h06
  5. [Oracle9i]Problème d'accès à une session
    Par lilas_violet dans le forum Connexions aux bases de données
    Réponses: 4
    Dernier message: 07/02/2007, 11h55

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