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 :
Fichier Login.java :
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>
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 @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; } }
Le premier contoler initialise bien l'attribut login (this.login.getLogin() retourne la bonne valeur)
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"; }
Mon deuxième controller :
Et là, dans ce controller, login.getLogin() retourne null !
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"; }
Quelqu'un peut m'aider svp ?
Merci
Partager