Bonjour,

J'utilise le framework Struts et dans ma classe Action, je mets des attributs dans la session. En fonciton de la valeur des attributs, je souhaite afficher des messages différents dans ma page JSP.


Voici le code de ma classe 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if (e1.getCode().equals(1)  || e1.getCode().equals(2)) 
                {
                   request.setAttribute("messageErreurBloquante", "messageErreurBloquante");
                    request.getSession().setAttribute("erreurBloquante", "true");
                    request.getSession().setAttribute("erreur", "erreurBloquante");
                    request.getSession().setAttribute("codeErreur", e1.getCode());
                    request.getSession().setAttribute("libelleErreur", e1.getLibelle());
                    erreurBloquante = true;
                    forward = MAPPING_SELECT_CRIT_STATS_INIT;
 
                    UtilLogger.traceErreur(trace, e1);
                }
               else if (e1.getCode().equals(3)  || e1.getCode().equals(4))
                {
                    request.setAttribute("messageErreurBloquante", messageErreurBloquante");
                    request.getSession().setAttribute("erreurBloquante", "true");
                    request.getSession().setAttribute("erreur", "erreurNonBloquante");
                    request.getSession().setAttribute("codeErreur", e1.getCode());
                    request.getSession().setAttribute("libelleErreur", e1.getLibelle());
 
                    erreurBloquante = true;
 
                    forward = MAPPING_SELECT_CRIT_STATS_INIT;
                }
                else
                {
                    // Autre erreur 
                    request.setAttribute("messageErreurBloquante", messageErreurBloquante");
                    request.getSession().setAttribute("erreurBloquante", "true");
                    request.getSession().setAttribute("erreur", "erreurAucuneTrace");
                    request.getSession().removeAttribute("codeErreur");
                    request.getSession().removeAttribute("libelleErreur");
 
                    erreurBloquante = true;
 
                    forward = MAPPING_SELECT_CRIT_STATS_INIT;
                }



Le code de ma JSP :


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
26
27
28
 
<logic:equal name="erreur" value="erreurBloquante">
                      <script> erreur="erreurBloquante";</script>
                      <div class="cssFormulaireTitre">
                          <small>
                              <span style="margin-left:30px;"><bean:message key="erreur.bloquante.message" /></span><br>
                              <span style="margin-left:30px;"><bean:message key="erreur.bloquante.messagesuite" /></span>
                          </small>
                      </div>
                  </logic:equal>
 
                  <logic:equal name="erreur" value="erreurNonBloquante">
                      <script> erreur="erreurNonBloquante";</script>
                      <div class="cssFormulaireTitre">
                          <small>
                              <span style="margin-left:30px;"><bean:message key="erreur.nonbloquante.message" /></span><br>
                          </small>
                      </div>
                  </logic:equal>
 
                  <logic:equal name="erreur" value="erreurAucuneTrace">
                      <script> erreur="erreurNonBloquante";</script>
                      <div class="cssFormulaireTitre">
                          <small>
                              <span style="margin-left:30px;"><bean:message key="erreur.aucunetrace.message" /></span><br>
                          </small>
                      </div>
                  </logic:equal>

Sous Firefox tout fonctionne très bien. Les messages obtenus correspondent au résutlat attendu en fonction de l'erreur.

Cependant sous IE, j'ai un gros souci de "persistance" des valeurs des attributs, car lorsque ma page d'erreur est affiché une première fois, j'ai les bons messages. Si je relance mon action pour obtenir un message différent, c'est toujours le premier message qui s'affiche.


J'ai cherché un peu partout la différence de comportement enter IE et firefox mais je n'ai rien trouvé.

Merci d'avance pour votre aide,