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 :

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>
J'ai un service qui gère cette variable session :
CartServiceImpl.java
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;
 
	}
 
 
 
}
et dans mon controler :

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()
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
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";
		}
Quelqu'un a une proposition svp ?

Merci.