Bonjour,
Je développe un site web en Spring/hibernate. J'utilise des variables à portée session (exemple variable "Cart" qui représente un panier de shoping). Je voudrais savoir comment je peux détruire ces variables et vider ma session dans ma méthode "logout" ? J'ai cherché sur le net mais je n'ai pas trouvé une solution.
Ci-dessous mon code :
Dans spring-servlet.xml, je déclare mon bean à portée session en utilisant un proxy :
J'ai un service qui gère cette variable session :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <bean id="cart" class="atr.gestionmagasin.attribute.Cart" scope="session"> <!-- this next element effects the proxying of the surrounding bean --> <aop:scoped-proxy /> </bean>
CartServiceImpl.java
et dans mon controler :
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 @Service("cartService") public class CartServiceImpl implements CartService { Cart cart; public Cart getCart(){ return cart; } public void setCart(Cart cart){ this.cart= cart; } }
J'ai essayé cette méthode pour détruire ma variable session et vider ma session lors de l'appel à la méthode logout mais ça ne marche pas, j'ai eu une excéption : Cart cannot be cast to org.springframework.aop.scope.ScopedObject
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 @Autowired private CartService cartServiceImpl; //Je récupère ma variable cart dans le controler en utilisant //cartServiceImpl.getCart()
Quelqu'un a une proposition svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @RequestMapping(value = "/logout") public String disconnectUser(Model model){ //Récupérer la variable session "Cart". ScopedObject cscob = (ScopedObject) cartServiceImpl.getCart(); //Supprimer la variable session de la session cscob.removeFromScope(); return "Client_index"; }
Merci.
Partager