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 :

[Debutant] Gestion variables session controller [Framework]


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Par défaut [Debutant] Gestion variables session controller
    Bonjour,

    Dans une application Java web j'ai un user qui s'inscrit avec une session avec un username et passe de pages en pages.
    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
    @Controller
    @SessionAttributes("user")
    public class BaseController {
     
        @RequestMapping(value = "/start", method = RequestMethod.GET)
        public ModelAndView showForm() {
            return new ModelAndView("index", "user", new User());
        }
     
        @RequestMapping(value = "/start",method = RequestMethod.POST)
        public String requestDone(@Valid @ModelAttribute("user")User user,BindingResult bindingResult,final ModelMap pModel) {
            if (bindingResult.hasErrors()) {
                return "index";
            }
            return "success";
        }
    }
    Cela fonctionne comme je le voulais, sauf que j'aurais aimé ajouté que si je retourne sur le site je détecte automatiquement que la variable sessions user existe déjà. Ici je l'écrase via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return new ModelAndView("index", "user", new User());
    Je n'ai aucune idée de comment y avoir accès réellement dans mon contrôleur.
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        @RequestMapping(value = "/start", method = RequestMethod.GET)
        public ModelAndView showForm(@RequestParam(value = "user", required=false)User user) {
            System.out.println("In forme "+user );
            if(user == null)
                user = new User();
            return new ModelAndView("index", "user", user);
        }
    Je pensais qu'il détecterais ma variable de session mais cela m'afficher "In forme null" à chaque fois.
    Pourtant si une fois l'inscription effectuée je vais sur une autre page et j'affiche le user cela fonctionne sans soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        @RequestMapping(value = "/test", method = RequestMethod.GET)
        public String showForm2() {
            return "index";
        }
    J'ai du mal comprendre quelque chose au niveau du contrôleur :/.

    Petite question bonus :
    J'ai tenté de gérer un User en Autowire pour faire de l'aop et éviter le new User(), mais j'ai eu l'erreur "The prefix "aop" for element "aop:scoped-proxy" is not bound." sur le "<aop:scoped-proxy/>", ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <bean id="user"    class="com.mathseiw.quizz.model" scope="session">     
          <aop:scoped-proxy/>
      </bean>
    Alors que j'ai bien intégré http://www.springframework.org/schema/aop et http://www.springframework.org/schem...ng-aop-3.1.xsd dans mon dispatcher spring.

    Merci d'avoir pris le temps de me lire.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2017
    Messages : 3
    Par défaut
    Bon, j'ai réussi à faire ce que je voulais faire mais j'ai aucune idée si c'était la bonne façon de procéder.

    J'ai auto wire le user :
    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
    @Controller
    @SessionAttributes("user")
    public class BaseController {
     
        @Autowired
        private User user;
     
        @RequestMapping(value = "/start", method = RequestMethod.GET)
        public ModelAndView showForm() {
            return new ModelAndView("index", "user", user);
        }
        @RequestMapping(value = "/start",method = RequestMethod.POST)
        public String requestDone(@Valid @ModelAttribute("user")User user,BindingResult bindingResult,final ModelMap pModel) {
            if (bindingResult.hasErrors()) {
                return "index";
            }
            return "success";
        }
    }
    Dans mon servlet.xml spring j'ai ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean id="user" class="com.mathseiw.quizz.model.User" scope="prototype"></bean>
    Et j'ai du ajouter ça dans mon web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	<listener>
    		<listener-class>
    			org.springframework.web.context.request.RequestContextListener
    		</listener-class>
    	</listener>
    cf : https://stackoverflow.com/questions/...teexception-no

    Et du coup j'ai bien mon user qui est affecté en variable et qui reste même si on reset l'appli.

    Pour les curieux, mon jsp :
    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
     
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    	<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1">
    <link rel='stylesheet'
    	href='webjars/bootstrap/3.2.0/css/bootstrap.min.css'>
    </head>
    <body>
     
    	<div class="container">
     
    		<form:form class="form-signin" method="POST" modelAttribute="user">
    			<h2 class="form-signin-heading">Please sign in</h2>
    			<form:label path="username" class="sr-only">Username</form:label>
    			<form:input path="username" name="username" id="username" class="form-control"/>
    			<form:errors path="username" cssClass="error" />
    			<form:button id="enter" name="enter">Enter</form:button>
    		</form:form>
    	</div>
    	<!-- /.container -->
    	<script type="text/javascript" src="webjars/jquery/2.1.1/jquery.min.js"></script>
    	<script type="text/javascript"
    		src="webjars/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    </body>
    </html>
    Si quelque chose fais vomir quelqu'un je suis toujours preneur de conseils .

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

Discussions similaires

  1. gestion des sessions et controle
    Par navorinco dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2009, 19h32
  2. Debutant Gestion Session
    Par BoyzInDaProject dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/03/2007, 10h29
  3. gestion des Variables Sessions
    Par Landolsi dans le forum ASP.NET
    Réponses: 8
    Dernier message: 08/02/2007, 13h30
  4. gestion des sessions avec le controller struts
    Par don'de dans le forum Struts 1
    Réponses: 4
    Dernier message: 18/12/2006, 18h21
  5. [struts]Variable session
    Par ansarim dans le forum Struts 1
    Réponses: 2
    Dernier message: 25/02/2004, 12h02

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