Posted on janvier 26th, 2010 by admin

49 Comments

Ce tutoriel, didacticiel a pour but de vous initier à Struts en vous présentant de manière concrète ses principaux mécanismes. Nous commencerons par la mise en place de votre environnement de travail sous eclipse galileo et le moteur de servlet, Tomcat 6. Nous intégrerons les bibliothèques et jars nécessaires au fonctionnement de notre application struts 2.

I – Mise en place de l’environnement.

Nous travaillerons avec :

- Eclipse Galileo (IDE for java EE Developper) que vous pouvez trouvez ici

- Tomcat 6.x que vous pouvez télécharger ici (Pour windows téléchargez le Windows Service Installer )

A – Installation d’eclipse et tomcat.

- Créez un dossier dev à la racine d’un de vos disques dur. Décompressez le fichier : eclipse-jee-galileo-SR1-win32.zip . Si vous rencontrez des problèmes pour l’installation d’éclipse je vous renvois vers la documentation officielle sur le site d’Eclipse.

- Installez tomcat

A.1 – Intégration de Tomcat 6 dans Eclipse.

Nous commençons par créer un nouveau Dynamic Web Project.

que nous nommerons ProjectName


Notre nouveau projet est créé. L’on remarque la présence d’un deployment descriptor. Ce descripteur de déploiement est le fichier de configuration xml de toutes les application J2ee. Il appelle struts 2, définit votre page d’accueil par défaut, appelle spring éventuellement.. , déclare vos taglibs etc…

Le projet contient par ailleurs différents dossiers et fichiers que vous devez créer :

- Le package « scr » qui contiendra les classes de l’application.

- Le dossier WebContent qui contient nos fichiers à déployer sur le serveur web (tomcat).

- Le dossier WEB-INF (sous-dossier de Webcontent) ou nous créerons notre fichier web.xml.

- Le dossier build qui contiendra nos fichiers java compilés en « *.class » par la machine virtuelle java.

Il faut ensuite monter le serveur tomcat que l’on associe au projet :

On indique à eclipse ou se trouve physiquement Tomcat :

On indique la JRE ( Java runtime library ) utilisée :

Puis l’on associe le projet au serveur :

A.2 – Intégration des bibiothèqhes (.jar) nécéssaires.

Il faut maintenant intégrer les JARS de struts que vous pouvez télécharger ici en les mettant dans le dossier

lib de votre WEB-INF. Une fois décompressé, vous devez récupérer les *.jar et les mettre dans le dossier /WEB-INF/lib/ de votre projet.

Il faut maintenant intégrer ces jars au build path de notre projet.

Faites un clic droit sur le nom de votre projet (ici projectName ) et choisissez l’entrée properties dans le menu contextuel. Ouvrez ensuite le panneau des properties de votre projet.

Sélectionnez ensuite Java Build Path ( sur la gauche ) puis activez l’onglet librairies et sélectionnez le bouton Add JARS..

Sélectionnez tous les jars présents dans votre répertoire lib, puis cliquez sur OK.

Il vous faut maintenant exporter ces nouveaux jars dans votre projet eclipse.

Nous allons maintenant rajouter la librairie runtime (JRE) :

en sélectionnant le Server Runtime :

Maintenant nous allons créer une simple page en JSP pour vérifier le bon fonctionnement de notre installation.

Créez une nouvelle page JSP dans votre répertoire webContent et testez ce scriptlet (entre <body> et </body>) :

< % out.println("hello !"); %>

Faites maintenant un clic droit sur la page, choisisser run. La page devrait s’afficher avec le message : Hello ! et votre console Eclipse renvoyer (en rouge) ce message :

INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
27 janv. 2010 13:50:38 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1257 ms
27 janv. 2010 13:50:38 org.apache.catalina.core.StandardService start
INFO: Démarrage du service Catalina
27 janv. 2010 13:50:38 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
27 janv. 2010 13:50:39 org.apache.coyote.http11.Http11Protocol start
INFO: Démarrage de Coyote HTTP/1.1 sur http-8080
27 janv. 2010 13:50:39 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
27 janv. 2010 13:50:39 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/31 config=null
27 janv. 2010 13:50:39 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1195 ms


B – Configuration d’un projet Struts2.

Struts 2 est un framework de développement. Il comprend un ensemble de bibliothèques qui facilitent le développement des interfaces web.

Struts2 est un framework orienté action architecturé en xml. Ses Actions permettent d’accéder aux différents Services tel le « Model » et déterminent ce que la Vue doit afficher après leur traitement (traitement des actions par struts.xml). Les actions struts 2 implémentent des objets java appelés Beans pour chaque donnée envoyée via les formulaires. Struts repose sur un modéle de conception dis MVC 2 (Modèle Vue Contrôleur). Ce framework fournit un certain nombre de services tels le débogage, les validateurs de formulaire, la gestion de la navigation ou encore la gestion de l’internationalisation.

B.1 – Les règles et convention de développement en J2EE et Struts 2

Règle 1 : Ne pas utiliser de java dans la vue.

Règle 2 : Utiliser de préférence les taglib de struts 2 <s:…/>

Règle 3 : Utiliser les validateur du framework et sa logique.

B.2 – Le descripteur de déploiement web.xml

C’est le fichier central d’un projet JEE. Il contient les paramètres et caractéristiques de l’application. Il doît être présent dans le dossier webContent/WEB-INF (webContent étant le répertoire root de l’application). Voici ses principales caractéristiques :

Voici un fichier type web.xml pour struts2.

web xml struts 2

- La balise <web-app/> définit le corps du descripteur de déploiment.

- La balise <display-name/> définit le nom de votre application.

- La balise <welcome-files/> définit le ou les fichiers de boot de votre application.

- La balise <filter/> et <filter/mapping> définit la servlet du filtre Struts 2 et l’url root (pattern) de Struts.

et aussi

- La balise <ressources/> vous permet de faire appel à des ressources externes comme des paramètres de connexion à une bdd

- La balise <taglib> vous permet déclarer les bibliothèques de tag que vous allez utiliser (en plus des tag struts). Pour approfondir sur les jstl rendez-vous sur ce très bon tutoriel.

B.3 – Le controleur strust.xml


Le fichier Struts.xml, hérite d’un fichier plus important : struts-default.xml qui définit un ensemble de mécanismes par défaut. Je ne présenterais pour le moment que le fichier struts.xml que vous devez placer à la racine de votre répertoire « scr », racine de votre répertoire de classes. Ce fichier sert principalement au routage de vos actions et à la navigation.

voici son contenu :

Nous trouvons un certain nombre de balise de type <constant/> qui nous permettent de surcharger le struts default.xml.

A minima nous trouvons :

DynamicMethodInvocation = « true/false ». Cette fonction permet l’invocation dynamique de méthode (notation bang !). Il est conseillé de la fixer à false.

DevMode = « true/false ». Le fichier de configuration struts.xml est lu à chaque démarrage de l’application. Pour nous éviter le fastidieux project/clean a chaque modification du contenu du struts.xml nous passerons le devMode à true (mode de développement).

i18n.resources name= »package ». Le mécanisme de internationalisation utilise des fichiers en name.properties pour les différentes langues. Nous fixons une fois pour toute le nom de ces fichiers à package.

B.4 – La notion de package et d’espace de nom.

Au sein du fichier strus.xml l’on regroupe les différentes action struts au sein de packages.

La balise package contient trois attributs importants :

- L’attribut name qui est le nom du package proprement dit.

- L’attribut namespace qui indique d’ou et comment les action doivent être appellées. Dans notre exemple de strust.xml, nous apellerons nos actions directement de cette manière : /applicationContext/gotopage2 . Maintenant modifions notre fichier struts.xml en ajoutant un namesapce qualifié :

il nous faut maintenant déclencher notre action en l’appelant ainsi : /applicationContext/back-office/gotopage2. Grâce aux package et aux espaces de nom nous pouvons définir différents packages appliqués à telle ou telle parties de notre application web.

- Le dernier attribut ; extends, est obligatoire. Par défaut il étend « struts-default ». définit dans le fichier struts-default.xml.

B.5 – La balise </action> et </result>.

La balise <action/> est toujours utilisée entre les balises <package> … </package>. C’est elle qui récupère les actions reçues par la couche vue et organise leur traitements ainsi que la page jsp à afficher après ce traitement. Une action doit avoir un nom (attribut name) qui doit être le plus compréhensible possible.

ex :

<action name=« allerPage2″ />

Une action peut faire référence à un méthode de classe mais ce n’est pas obligatoire.

<action name=« allerPAge2″ class=« com.oneandcie.test.MaClasse » method=« allerPage2″/>

Une fois le traitement réalisé (ou non) par la méthode de classe. Un résultat est retourné et traité dans la balise <action/>. Pour permettre à struts de savoir ou retourner le résultat de l’action nous utilisons la balise <result/>. Cette balise nous permet de rediriger l’internaute sur telle ou telle page suivant le résultat du traitement de l’action.

Voici un exemple simple sans appel à une methode de classe externe :

L’action gotoPage2 envoyée par notre page JSP est récupérée dans notre fichier struts.xml par la balise <action/> puis redirigée vers une page (page2.jsp) grâce à notre balise </result>.

C – Pratique : Un exemple simple : allez d’une page à une autre.

Reprenons notre projet, nous allons modifier la page index.jsp de cette manière :

en y insérant la déclaration des taglibs de struts (nous y reviendront) et en incluant un lien ayant pour action gotoPage2.

Notre fichier strux.xml doit ressembler à ceci :

et notre fichier web.xml à ceci :

pour tester faite un clic droit sur le code de la page index.jsp et cliquer sur le lien. Vous avez codé votre première action Struts 2. Félicitation ;) !

Nous aborderons dans une seconde partie la gestion des formulaires en struts 2. N’hésitez pas à laisser vos commentaires ou les difficultés rencontrées j’y répondrais.


Si vous avez le temps merci de répondre à ce mini sondage, çà m’encouragera à continuer (ou pas) ;)

49 Responses to “Tutoriel STRUTS 2 : pour bien commencer avec Struts 2 et eclipse. (alias Struts 2 pour les nuls )”


  1. jumbo

    7 years ago

    Un grand Merci pour le tutorial :)


  2. igarramen

    1 year ago

    interested topic! Thanks


  3. Pierre

    1 year ago

    Et bien pour ma part, ce tutoriel me fut d’une très grande aide !
    Au début, Impossible de trouver une bonne structure de fichier, et mapper les configuration.
    Merci.

    Je vais lire la suite je pense =)


  4. lba

    1 year ago

    bjr et merci pour le tuto …

    - Il semble que l’on doit 1 créer un projet Web dynamique et non static comme indiqué ds la premiere copie d’ecran
    - le fait de déposer les librairies ds le repertoire web-inf/lib, normalement on n’a pas besoin de les ajouter … de nouveau (ds ma version eclipse europa ils sont ajoutes à « web librairies app » (config normal pour un projet web dynamic)
    - j’ai pas trouve les ressources des taglib declarés ds le web.xml


  5. admin

    1 year ago

    Effectivement il n’est pas nécessaires d’ajouter les librairies à nouveau. (j’utilise Helios.)

    Tu peux récupérer le fichier c.tld ici => http://java.sun.com/products/jsp/jstl/downloads/index.html


  6. xylo2

    1 year ago

    Oui, c’est très bien. Tu pourrais expliciter ce qu’on doit positionner dans l’attribut name de la balise package ? A chaque fois que j’essaye d’y positionner une valeur autre que chaîne vide, je fais planter mon application.


  7. mery

    1 year ago

    merci


  8. admin

    1 year ago

    Les packages sous struts 2 sont utiles pour regrouper des actions similaires ou des actions opérant dans le même espace de nom. Les packages fonctions un peu comme des classes java, tu peux appliqué l’héritage. Pour l’attribut name= »GroupeActionA » mets ce que tu veux. Pour l’héritage tu doit te servir de l’attribut extends= »struts-default » (par défaut) puis pour les autres extends= »GroupeActionA » si tu veux hériter du GroupeActionA.


  9. m'rik

    1 year ago

    Moi j’ai un soucis de pointeur null au démarrage du filtre struts2 !! que faire ?? ^_^’


  10. admin

    1 year ago

    Il faut positionner la valeur struts.devMode à false (dans le fichier Strust.xml) lorsque tu lances l’application pour la première fois.


  11. mitsu

    1 year ago

    Bonjour, et merci pour le tuto,

    J’ai un soucis, je n’ai pas de fichier struts.xml ??

    merci


  12. admin

    1 year ago

    Le fichier strust.xml se trouve à la racine du répertoire src (contenant les classes java de l’application)


  13. mostapha

    1 year ago

    Merci pour l’exemple c’est très un intéressant.

    SVP j’ai besoin d’une petite application complet en struts2 deux pour bien comprendre les choses. je vais commencer un stage et je veux bien pratiquer ce freemwork. voila mon email : amostapha@live.fr


  14. adrien

    1 year ago

    merci merci !


  15. Baracouda

    1 year ago

    Bonjour
    J’obtiens l’erreur suivante au démarrage de tomcat, et bien sure apar la suite je ne peux rien faire (pas voir les jsp …) bien que tomcat tourne.

    GRAVE: Exception au démarrage du filtre struts2
    Unable to load configuration. – file:/Users/baracouda/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/ProjectName2/WEB-INF/classes/struts.xml:2:8
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)

    Merci ca fait longtemps que je tourne en rond.

    Baracouda


  16. admin

    1 year ago

    bonjour, Je ne peux pas t’aider sans voir le code source de ton fichier struts.xml, apparement il y a une erreur à la ligne 2, position 8. Fait passer le devmode de ton struts.xml à false et vérifie la syntaxe de la ligne que je cite.


  17. Baracouda

    1 year ago

    Bonjour

    Merci de ta réponse , j avais pas mis le DOCTYPE dans struts.xml !
    Autre chose : Pourquoi dois je laisser namespace comme ci dessous :

    sinon la redirection de l’action ne fonctionne pas ? Que dois je faire pour utiliser namespace= »/back-office »

    Merci !
    baracouda


  18. admin

    1 year ago

    C’est vrai que le concept de namespace peut paraitre ambigue au premier abord.
    L’attribut namespace subdivise le fichier stuts.xml en modules logiques, chacun ayant son propre suffixe identifiant. Les espaces de nom premettent d’éviter les conflits entre les noms d’actions. En clair chaque namespace peut avoir sa propre configuration pour une action. Lorsque l’on utilise un espace de nom l’on n’a pas besoin de spécifier l’url exacte dans la forme des liens qui apelleront l’action.

    cela n’a rien a voir avec l’organisation de tes packages java.

    Imagine une application web nommée struts2Test, ayant plusieurs « répertoires ».

    Prenons l’exemple d’un cms, nous avons une racine (le webcontent) répertoire /, une partie administration ; répertoire
    /admin/ et une partie front, répertoire /front/

    Arborescence de struts2Test

    -Webcontent/
    ——|
    ——| index.jsp
    ——| a.jsp
    ——|admin/
    ——-| indexAdmin.jsp
    ——-| b.jsp
    ——|front/
    ——-| indexfront.jsp
    ——-| c.jsp

    nous avons donc trois espaces de nom possibles et nous pouvons définir trois packages dans notre fichiers struts.xml

    http://localhost:8080/Struts2Test/ ; correspond au namespace= »/ »

    http://localhost:8080/Struts2Test/admin/ ; correspond au namespace= »/admin »

    http://localhost:8080/Struts2Test/front/ ; correspond au namespace= »/front »

    ce qui me donnera un fichier struts.xml de ce type

    Code :
    Olivier Guillou comment img 045

    prenons l’action helloWorld , que va t’il se passé si on appelle helloWorld depuis /Struts2Test/index.jsp ? nous serons redirigés vers a.jsp, si nous appelons cette action depuis indexAdmin.jsp, nous serons redirigés vers b.jsp etc..

    Struts2 écoute l’action dans un espace de nom donné et renvoie x.jsp le résultat dans le même espace de nom.

    L’attribut name de l’espace de nom est laissé à notre discrétion. Les packages peuvent également s’étendre entre eux un peux comme en java. Si une action n’est pas trouvé dans le package fils, le package père sera scanné, si l’action y est présente elle sera éxécutée mais en ayant comme espace de nom celui définit dans le fils etc..


  19. hanane

    1 year ago

    bonjour ,votre tuto est impecable.

    je vous remerci infiniment.

    merci.


  20. forel

    11 months ago

    Merci pour ce tutoriel et le partage de vos connaissances.


  21. yus

    11 months ago

    grand merci pr le tuto !


  22. Jilani Sami

    10 months ago

    Bonjour,
    j’ai rencontré un probleme lors du config de mes fichiers jsp : Can not find the tag library descriptor for « /struts-tag »
    je veux savoir il manque quoi pour résoudre ce probleme et comment je peux télécharger le fichier c.tld
    Merci d’avance


  23. admin

    10 months ago

    il s’agit d’une erreur dans le tutoriel, les taglibs core ne sont pas utilisées dans ce projet, ils vous suffit de retirer la déclaration des taglibs dans le fichier Web.xml


  24. Mery

    9 months ago

    Bonjour ,

    Je vous remercie pour ce tuto , comme je suis débutante ca m’as permis de comprendre le principe

    Merci


  25. Mery

    9 months ago

    j’ai un prblm lors de la première exécution de l ‘app dans

    struts.xml :

    server returned HTTP response code:403 for URL:htth://struts.apache.org/dtds/struts-2.0.dtd

    web.xml :

    No grammar constarints(DTD or XML schema) detected for the document

    Merci de répondre


  26. JKane

    9 months ago

    Merci!!! Pour débuter pour un débutant comme moi en struts… très utile!!! et la suite???


  27. sawsen

    9 months ago

    Merci bq, est ce qu’il ya un exemple pour affichage des données d’une base(juste select).


  28. admin

    9 months ago

    oui, l’exemple figure a cette adresse : struts 2 sql


  29. sawsen

    9 months ago

    merci pour votre réponse, j’ai vu cet exemple struts 2 sql mais je veux juste affichage des donnés d’une base(liste des identifints, select * from idantification), Merci de votre retour.


  30. leara500

    9 months ago

    Merci pour cet excellent tutoriel qui m’a permis de bien appréhender l’univers du STRUTS 2.
    Mon projet fonctionne bien grace à vous.
    Je souhaite intégrer une animation pour ma page d’accueil (« pageFlip » ou « ArtFlashGalleryDemo »). J’ai donc testé les codes que j’ai trouvé en faisant une page HTML simple. Mais lorsque j’essai d’intégrer ces animations dans mes jsp, cela ne marche pas. Pouvez vous me donner un coup de mains ?

    Je vous en remercie d’avance


  31. admin

    9 months ago

    il me faudrait plus de détail (votre code) cdlt,


  32. leara500

    9 months ago

    Index.html:

    La Maison d’Enfants à Caratère Social (MECS) est reconnu d’utilité public depuis 1837

     

    var flashvars = {XMLFile: « gallery.xml »};
    var params = {wmode: « opaque », bgcolor: « #000000″, allowFullScreen: « true »};
    swfobject.embedSWF(« ArtFlashGalleryDemo.swf », « myAlternativeContent », »730″, « 540″, « 10.1.102″,false, flashvars, params);

    Au même niveau que mon fichier index.html, il y a le répertoire image, un répertoire asset, le fichier ArtFlashGalleryDemo.swf, le fichier setting.xml, et fichier image.xml, le fichier gallery.xml
    , le fichier ejs_menu_dyn.xml, ieupdate.xml

    WelcomePage.jsp

    La Maison d’Enfants à Caratère Social (MECS) est reconnu d’utilité public depuis 1837

     

    var flashvars = {XMLFile: « gallery.xml »};
    var params = {wmode: « opaque », bgcolor: « #000000″, allowFullScreen: « true »};
    swfobject.embedSWF(« ArtFlashGalleryDemo.swf », « myAlternativeContent », »730″, « 540″, « 10.1.102″,false, flashvars, params);

    Au même niveau que mon fichier WelcomePage.jsp, il y a le répertoire image, un répertoire asset, le fichier ArtFlashGalleryDemo.swf, le fichier setting.xml, et fichier image.xml, le fichier gallery.xml
    , le fichier ejs_menu_dyn.xml, ieupdate.xml

    WelcomePageAction.jsp:
    package action.frontoffice;
    import com.opensymphony.xwork2.ActionSupport;
    public class WelcomePageAction extends ActionSupport {

    }

    struts.xml

    frontoffice/welcomePage.jsp

    Merci pour le coup de main :)


  33. leara500

    9 months ago

    Désolée de l’erreur au lieu de WelcomePageAction.jsp, c’est WelcomePageAction.java


  34. leara500

    8 months ago

    Dois je mettre quelque chose en particulier dans mon fichier WelcomePageAction.java ? Une méthode en particulière ?


  35. tocka

    8 months ago

    Bravo pour ce tuto !!!!!!
    merci


  36. hafsi

    7 months ago

    merci pour ce tutoriel :)


  37. cocou

    6 months ago

    GRAVE: Exception au démarrage du filtre struts2
    Unable to load configuration. – file:/C:/Documents%20and%20Settings/agbangbeco/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/HelloWorld2/WEB-INF/classes/struts.xml:2:8
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4071)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4725)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
    at org.apache.catalina.core.StandardService.start(StandardService.java:525)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

    Moi j’ai des erreurs de ce type


  38. admin

    6 months ago

    Je ne vois pas votre fichier struts.xml mais c’est lié à un pb de déclaration du doctype :

    < ?xml version="1.0" encoding="UTF-8" ?>
    < !DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">


  39. cocou

    6 months ago


  40. admin

    6 months ago

    je vais changer çà sur le tuto mais à ce stade inutile d’en mettre plus que çà :

    la bloc display-name et ce qu’il contient.

    le bloc welcome file*

    le bloc filter (struts 2)

    et le filter mapping de struts 2

    (enlever les taglibs et le context-param)

    juste :

    web.xml d'un projet struts 2


  41. cocou

    6 months ago

    Oui merci , je viens de supprimer mais, ça n’a pas supprimé l’erreur qui continue de s’afficher au lancement et cela m’empêche d’avancer


  42. admin

    6 months ago

    Créer un war de ton projet (export / web / war file sous eclipse ) et donne moi en le lien je vais regarder.


  43. kati

    4 months ago

    salut,

    merci pour ce tutoriel
    j’ai suit toutes les instructions j’arrive à faire fonctionner l’exemple, sauf que après l’execution du projet et quand je fais des modification sur la page index.html je vois pas de modification.

    merci d’avance


  44. admin

    4 months ago

    la page doit s’appeler index.jsp et non index.html


  45. boumacmilan

    4 months ago

    Salut
    Merci pour ce tutoriel ça m’a vraiment aidé a commencer avec Struts 2 cependant j’ai un problème je pense que j’ai tout fait exactement comme le tuto ms ça ne marche pas j’ai toujours l’erreur 404
    Voici un lien vers mon war si vous pouvez y jetais un coup d’Å“il
    http://www.mediafire.com/?zh3s8m7374qdj0o

    Merci d’avance


  46. admin

    4 months ago

    Dans votre fichier web.xml :il manque un t a dispacher dans la déclaration : org.apache.struts2.dispatcher.FilterDispatcher. Par ailleurs aucun fichier struts.xml n’est nécessaire dans le web-inf. Cdlt


  47. boumacmilan

    4 months ago

    Merci pour votre reponce ^^ ça marche


  48. MCHENAFA

    1 month ago

    Merci pour ce tuto simple et très claire

1 Trackbacks For This Post

  1. Les tweets qui mentionnent Tutoriel STRUTS 2 : pour bien commencer avec Struts 2 et eclipse. (alias Struts 2 pour les nuls ) | OneAnCie -- Topsy.com Dit :

    [...] Ce billet était mentionné sur Twitter par Lionel LOKO, Mathieu Breton. Mathieu Breton a dit: Apprendre #Struts2 http://bit.ly/cAd6ut , http://bit.ly/aIfxGw , http://bit.ly/a3eWjK #Tutoriel #Debutant [...]

Leave a Reply