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 :

Variable de session


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut Variable de session
    Bonjour,

    Dans Spring MVC(2.5, mais je peux aussi utiliser le 3), je voudrais mettre un objet en session.
    Actuellement j'utilise cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        @ModelAttribute("userinfo")
        public UserInfoBean getModelAttribute(HttpServletRequest request) {
            HttpSession session = request.getSession(false);
            if (session != null) {
                return (UserInfoBean) session.getAttribute(SESSION_ATTRIBUTE);
            } else {
                return null;
            }
        }
    et quand je veux stocker ma variable en session, j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getSession().setAttribute(SESSION_ATTRIBUTE, userinfo);
    Cela marche, mais cela ne me plait pas des masses de mettre les mains dans le cambouis (au niveau de la request et de la session) ...

    Je me suis dit, je vais mettre au niveau de mon contrôleur un bean userinfo avec le scope session !
    Mais je n'y arrive pas :
    Je déclare mon bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="userinfo" class="mesPackages.springmvc.web.bean.UserInfoBean" scope="session"/>
    Dans mon contrôleur j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @Controller
    @RequestMapping(value = {"/hello.html", "/index.html"})
    public class HelloSpringMVC {
     
        @Autowired
        private UserInfoBean userinfo;
    ...
    Mais quand je lance mon application (sous Jetty) j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'helloSpringMVC': 
    Autowiring of fields failed; 
    nested exception is org.springframework.beans.factory.BeanCreationException: 
    Could not autowire field: com.orange.mhc.springmvc.web.bean.UserInfoBean MesPackages.springmvc.web.HelloSpringMVC.userinfo; 
    nested exception is org.springframework.beans.factory.BeanCreationException: 
    Error creating bean with name 'userinfo': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; 
    nested exception is 
    java.lang.IllegalStateException: 
    No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
    Je ne comprends pourquoi je ne peux pas mettre de bean avec un scope session dans mon contrôleur ... et je ne vois pas comment faire pour pouvoir avoir une solution de ce type !

    Je vous remercie.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 30
    Par défaut
    A priori en utilisant le code suivant, cela marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <bean id="userinfoSession" class="MesPackage.springmvc.bean.UserInfoBean" scope="session">
            <aop:scoped-proxy/>
        </bean>
    Je me répond donc

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

Discussions similaires

  1. [C#] Tester existence d'une variable de session
    Par IDNoires dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/12/2004, 12h30
  2. Création d'une variable de session avec un ID
    Par PrinceMaster77 dans le forum ASP
    Réponses: 4
    Dernier message: 18/10/2004, 10h28
  3. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42
  4. Variable de session
    Par Sadneth dans le forum ASP
    Réponses: 6
    Dernier message: 14/11/2003, 11h12
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 16h04

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