Bonjour,
J'utilise spring 3.0 avec struts 2.3.4, mais j'ai un gros problème de session/scope.
J'ai un moteur de recherche, auxquels je soumet une requête via un formulaire en post, ce que je m'aperçois en prod c'est que mes attributs posté sont mélangé entre les différents utilisateurs.
Ainsi une recherche est bien lancé et le résultat est cohérent, mais en faisant F5, parfois les paramètres que j'avais sélectionné sont supprimé, et d'autres ajouté. Visiblement c'est le résultat d'un autre utilisateur que j'obtiens aléatoirement!
J'ai définis comme ceci mon action :
Mon struts.xml
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
22
23
24
25 @Controller public class CatalogueAction extends ActionSupport implements ServletRequestAware, Preparable { @Autowired private SuperService s; // le super service // Les attributs posté private String listePrix; private Set<String> nomenclaturesId = new HashSet<String>(); private Set<String> editeursId = new HashSet<String>(); private String tarif; // Action de recherche public String rechercherRessource() { if (s.getSolrService().rechercherRessource(page, this.PAGE_SIZE, this.query, this.nomenclaturesId, this.editeursId, this.typeProduitId, this.tarif)) { for (StringBuilder sb : s.getSolrService().getResultat()) { this.resultat.add(sb.toString()); // J'affiche le resultat return SUCCESS; } return ERROR; }
Je n'arrive pas a reproduire en local ce problème (même avec plusieurs navigateur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <struts> <constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" /> <constant name="struts.devMode" value="true" /> <package name="basicstruts2" extends="struts-default,json-default"> <!-- Recherche --> <action name="rechercherAction" class="fr.cndp.ccr.catalogue.actions.CatalogueAction" method="rechercherRessource" > <result name="success">rechercheRessource.jsp</result> <result name="error">erreur.jsp</result> </action> </package> </struts>
J'ai essayé d'ajouté un scope sur mon action sans succès :
Avez vous une idée ? Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part @Scope("prototype")
Partager