IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Appli] [Debutant] perdu. Quelle démarche adopter ?


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut [Appli] [Debutant] perdu. Quelle démarche adopter ?
    Bonjour,

    Je débute en J2EE et je souhaite developper une petite application Web en utilisant le serveur Jonas et le framework Struts. J'ai lu pas mal de tutorial, cours du site et j'avoue que maintenant je suis un peu perdu.
    L'application que je souhaite developper est assez modeste, elle possedera quelques classes metier sans même accès à une BD, (mais à des fichiers de données quand même) et quelques formulaire Web dynamiques (ces formulaires doivent permettre de modifier les fichiers de données). La developpement des classes JAVA metier ne me gene pas. Mon probleme se situe surtout à savoir comment integrer cette couche metier dans ma couche interface. Je ne sais pas si je dois utiliser des EJB ou pas, utiliser que des servlets, dois-je faire une interface de ma couche "metier"...etc...
    Bref, je suis un peu en recherche d'une methodologie et d'un schema général d'organisation à adopter...

    J'espère que ma demande est claire bien qu'un peu générale. Merci d'avance pour vos eclaircissements .

  2. #2
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Points : 100
    Points
    100
    Par défaut
    Perso dans ce genre d'application, j'utiliserais :
    1. Struts avec les Tiles pour la présentation
    2. Une classe 'Service' par objet métier
    3. Une classe DAO par objet métier


    En bref, j'ai une action struts EmployeeAction par exemple qui appele EmployeeService (logique business) qui elle va appeler EmployeeDAO pour la persistence (DB ou fichier). Les données sont véhiculées via un objet un bean (EmployeeBean) représentant l'objet métier.

    Comme tu précises que c'est une petite application, je ne pense pas qu'il y aie besoin de faire des EJBs.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Je rejoins nighma sur l'inutilité (dans le cas d'une petite appli n'utilisant pas de DB) des EJB.

    Le shéma général est assez simple pour struts (car si j'ai bien compris, c'est le framework struts qui pourrait te poser quelques soucis ?)

    Donc si tu utilises struts, la seule chose dont tu aies besoin est la servlet de struts. Tu peux en monter d'autres à côté, mais tu perds du coup l'intérêt de struts (le découpage net de chaque entité composant ton appli, et la généricité qu'apporte struts).
    Donc, en admettant que tu ne connaisses pas struts, sinon ce que je vais dire te sera inutile) :

    Ton web.xml va rediriger tes requête vers la servlet de struts.

    Il faut ensuite que tu découpes bien chaque partie :
    Une action qui va manipuler tes objets métiers, un ActionForm éventuellement si tes requêtes sont susceptibles de contenir des paramètres.

    Par exemple : www.localhost:8080/MyApp/Test.do?service=untel

    Avec une telle requête, tu vas avoir besoin d'un ActionForm ayant un attribut de type String, et ses accesseurs getService() et setService().

    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class TestForm extends ActionForm{
       private String service;
       public String getService(){
         return service;
       }
       public void setService(String pService){
         service = pService;
       }
    }
    Ainsi, lorsque tu lances une telle requête, le fichier web.xml est interrogé, il renvoie vers la servlet struts.
    Ensuite, le struts-config.xml est interrogé. Tu dois avoir à l'intérieur défini les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    <!-- déclaration du bean TestForm.java -->
    <form-beans>
       <form-bean name="leNom" type="monpackage.actionform.TestForm" />
    </form-beans>
    <!-- déclaration de l'action Test.java -->
    <action-mapping>
       <action path="/MyApp" type="monpackage.action.Test" name="leNom" attribute="bean" scope="request" validate="false" />
    </action-mapping>
    ...
    donc ici, le struts config va répondre qu'aux rêquêtes Test.do, il va lancer l'action Test.java, qu'il a un potentiellement un bean associé (TestForm), que sa validité est limité à la requête (scope="request", tu as aussi "session" et "application") et qu'on ne demande aucune validation des paramètres entré dans TestForm. Si tu veux une validation, tu mets true et tu implémentes la méthode validate() dans ton TestForm qui va vérifier chaque attribut de ton form.

    Ensuite, si tout est ok, ton serveur va lancer la méthode execute que tu auras implémenté dans Test.java.

    Cette méthode prend en parametre le mapping d'action (qui te permet de te rediriger vers la bonne JSP suivant le résultat métier), l'ActionForm, soit les paramètres de ta requête (request.getParameter est à bannir avec struts) ,la requete et la reponse http. Pour le résultat, tu as 2 politiques, soit renvoyer le résultat dans une JSP, soit l'écrire directement dans la réponse http (via getWriter() et getOutputStream()).
    C'est donc ta methode exécute qui appeler directement ou indirectement tes objets métiers.
    dès lors que ton traitement métier est terminé, ton Action reprend la main, calcule l'ActionForward (cad le "chemin" vers la bonne JSP) généralement en faisant un return mapping.findForward("mot-clé");

    par exemple, si dans ton struts-config, tu as défini un forward vers "Welcome.jsp" et associé au mot-clé "success", tu chercheras mapping.findForward("success");, et en cas d'erreur, tu as une JSP ERROR.jsp associé à "error" et mapping.findForward("error");

    la JSP sera donc ensuite directement chargé par ton moteur de JSP(Jonas donc) et c'est fini.

    J'espère donc répondre à ta question.

    Cheloute

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Merci pour vos réponse, je vais essayer de voir ça assez posément, ça me semble déja légèrement plus clair....

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Ce tutorial semble être parfaitement adapté a mon besoin (surtout nivo env. de dev):
    http://stessy.developpez.com/j2ee/ec...s/?page=page_5

    Cependant, avec eclipse 3.x, le plugin easystruts ne marche pas , quel remplacant me conseillez-vous ?

    Merci d'avance.

  6. #6
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Malheureusement, pour faire du Struts avec Eclipse 3, les plugins ne se bousculllent pas au portillon. J'ai déjà fait une recherche dans ce sens mais sans vraiment de success.

    Cela ne t'empeche pas de faire tes fichiers à la main en integrant un plugin XML cela passe tout seul (et surtout tu es maitre de tes modifications).

    Maintenant si quelqu'un connait un plugin Struts pour eclipse 3.x je suis preneur egalement

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    J'ai trouvé celui-la qui est vraiment pas mal du tout si ça peut servir à quelqu'un...

    http://amateras.sourceforge.jp/cgi-b...page=StrutsIDE


    ++

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/05/2012, 09h35
  2. [eZ Publish] [debutant] quelle démarche à suivre ?
    Par clara2005 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/02/2010, 09h47
  3. [Constantes] Quelle solution adopter ?
    Par animageo dans le forum Général Java
    Réponses: 16
    Dernier message: 10/02/2005, 12h43
  4. Réponses: 4
    Dernier message: 16/08/2004, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo