Comment faire pour associer une action a l'ouverture de l'index?
merci
Comment faire pour associer une action a l'ouverture de l'index?
merci
comme ceci:
index.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Redirecting</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.action"> </head> <body> </body> </html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <package name="default" extends="struts-default" namespace="/"> <result-types> <action name="index" class="com.opensymphony.xwork2.ActionSupport"> <result name="success">mapage.jsp</result> </action> </package>
Et à l'ouverture d'une JSP externe ?
avec struts 1 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <logic:redirect action="/home.do" />
Ici, la redirection se fait vers une autre page jsp sans devoir créer une action.
Je ne comprend pas bien ce que tu appelles une JSP externe ?
Maintenant rien n'empêche de créer une action et de rediriger vers une page via le "result" du struts.xml (comme un codage traditionnel, sauf que tu auras juste un return SUCCESS; dans la fonction de ton action)
Pour en revenir a mon cas, est ce que l'action est exécutée avant le chargement de ma page ?
Car dans mon action je construit une liste que je veux afficher dans un select sur mon index et je voudrais que cela se fasse a chaque chargement de la page.
merci
Et bien, quand tu rrive sur ta page, cela déclenche l'action, tu construit ta liste dans l'action et tu forward vers la page ou tu veux afficher ta liste. Mais ce ne sera pas l'index, puisque l'index déclenche une action direct, tu ne pourra pas voir ta liste.
ok si je comprends bien je dois laisser le index.jsp conpletement vide. Cette page ne servira qu' a appeler une action qui me dirigera vers une autre page que je pourrai définir comme mon index, c'est cela ?
merci
Bonjour,
Voici une autre exemple:
Si tu veux initialiser une liste à chaque fois que tu veux rentrer dans une page jsp, tu crées une action avec par exemple une fonction init
struts.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class MonAction extends ActionSupport public String init() throws Exception { List<Country> countries = ... return "init"; }
index.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <package name="test" extends="struts-default" namespace="/"> <action name="init" method="init" class="MonAction "> <result name="init">maliste.jsp</result> </action>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Redirecting</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <META HTTP-EQUIV="Refresh" CONTENT="0; URL=init.action"> </head> <body> </body> </html>
Remarque : la page index.jsp sert uniquement à faire une redirection, le code décrit dans le post précédent permet de faire un genre de "forward" en utilisant une action sans devoir devoir créer cet action!
Par contre celui-ci exécute une action "init" avant d'être rediriger vers la page maliste.jsp
Et chaque fois que tu auras besoin de réinitialiser ta liste tu appelles l'action init ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager