[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:
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:
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:
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:
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:
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.