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.