Bonsoir,
Je voudrais afficher le message "opération effectuée avec succès" lorsque ça retourne "success" tout en restant sur la même page.
J'ai testé avec <html messages/> mais ça s'affiche dans tous les cas!
Bonsoir,
Je voudrais afficher le message "opération effectuée avec succès" lorsque ça retourne "success" tout en restant sur la même page.
J'ai testé avec <html messages/> mais ça s'affiche dans tous les cas!
struts-config.xml:
<forward name="success" path="/societe.do" />
Peux-tu montrer le code de l'Action dans laquelle tu alimentes ActionMessages ?
voila une petite explication avec un exemple:
soit l'action suivante :
et le code execute de la la classe ConversionAction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <action path="/conversion" type="action.ConversionAction" name="conversionForm" scope="request" validate="true" input="/pages/paramCalcul.jsp"> <forward name="success" path="/pages/resConversion.jsp"></forward> <forward name="error" path="/pages/paramCalcul.jsp"></forward> </action>
Après l'appel de l'action et l'exécution du code la méthode execute, si on a pas d'erreur (errorMsgs vide) on forward sur la page jsp défini par le forward name="success" càd sur (resConversion.jsp), si on a une erreur on forward sur le path défini par "error" (paramCalcul.jsp), qui est la même page d'où on a appeler l'action.
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 public class ConversionAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = new String(); ActionMessages errorMsgs = new ActionMessages(); try { //traitement ... ... request.setAttribute("madonnee", new String("madonnee")); } catch (Exception e) { errorMsgs.add("errors.detail", new ActionMessage("errors.detail", e.getMessage())); } if(!errorMsgs.isEmpty()) { saveErrors(request, errorMsgs); forward="error"; } else { forward="success"; } return mapping.findForward(forward); } }
Si on veux forwarder sur la même page, quelque soit le résultat du traitement, la notion de forward sur success ou error n'a pas vraiment de sens car on a une page de résultat unique. Dans ce cas là il faut mettre dans la page jsp résultante une traitement pour savoir si on a eu une erreur ou non dans le traitement. Voir le FAQ Struts - errors : http://java.developpez.com/faq/struts/?page=errors
Merci pour vos réponses.
J'ai trouvé mon bonheur ici http://java.developpez.com/faq/strut...ffichermessage![]()
Partager