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 :

Le MVC de Struts qui est quoi ?


Sujet :

Struts 1 Java

  1. #1
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut Le MVC de Struts qui est quoi ?
    Bonjour,

    Après un discussion hier sur le MVC je voudrais une confirmation :

    M = les Form bean manipulées par Struts
    V = les écrans d'affichage (jsp)
    C = action servlet + strutsconfig.xml

    La partie modèle de données dans le sens Java Bean de base + couche DAO est bien décorellées du modèle MVC de Struts ? Le MVC de Struts concerne bien uniquement la partie Struts ?

    Merci d'avance.

  2. #2
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par elitost
    Bonjour,
    M = les Form bean manipulées par Struts
    V = les écrans d'affichage (jsp)
    C = action servlet + strutsconfig.xml
    La partie modèle de données dans le sens Java Bean de base + couche DAO est bien décorellées du modèle MVC de Struts ? Le MVC de Struts concerne bien uniquement la partie Struts ?
    Oui. En fait la partie modèle peut normallement interagir avec n'importe quel framework d'acces aux données. De même que la vue n'est pas limitée aux JSP.

    PPDL.

  3. #3
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Ok, c'est bien ce que je pensais et ce que j'ai défendu hier.

    Merci.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par elitost
    M = les Form bean manipulées par Struts
    V = les écrans d'affichage (jsp)
    C = action servlet + strutsconfig.xml

    La partie modèle de données dans le sens Java Bean de base + couche DAO est bien décorellées du modèle MVC de Struts ? Le MVC de Struts concerne bien uniquement la partie Struts ?
    Salut !
    Euh, une petite précision tout de même. Struts permet de créer des applications web suivant le modèle MVC, mais le modèle MVC ici ne concerne pas uniquement la partie Struts. En fait, en tant que tel, Struts n'implémente que la partie Controller (action servlet + dispatcher...) et un peu la partie View (taglibs jsp), mais pas la partie Model. Struts te permet d'intégrer n'importe quel modèle que tu veux, qui représente donc ici la couche business dans une application multi-couches, développé soit avec des ejb soit avec de simples pojo gérés par Spring. Bien évidemment, tu peux avoir une architecture où tes actions struts ont directement accès à la couche DAO, mais ça c'est un choix de simplification d'architecture, qui ne signifie pas pour autant que le Model fait aussi partie de struts.
    Donc, en gros, Struts c'est V+C dans le modèle MVC, et liberté pour le M.
    Voilà, j'espère n'avoir pas trop compliqué encore les choses sur cette notion quelquefois un peu ambigue qu'est le modèle MVC.

  5. #5
    Expert éminent
    Avatar de elitost
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2003
    Messages
    1 985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 985
    Points : 6 566
    Points
    6 566
    Par défaut
    Citation Envoyé par manblaizo
    Salut !
    Euh, une petite précision tout de même. Struts permet de créer des applications web suivant le modèle MVC, mais le modèle MVC ici ne concerne pas uniquement la partie Struts. En fait, en tant que tel, Struts n'implémente que la partie Controller (action servlet + dispatcher...) et un peu la partie View (taglibs jsp), mais pas la partie Model. Struts te permet d'intégrer n'importe quel modèle que tu veux, qui représente donc ici la couche business dans une application multi-couches, développé soit avec des ejb soit avec de simples pojo gérés par Spring. Bien évidemment, tu peux avoir une architecture où tes actions struts ont directement accès à la couche DAO, mais ça c'est un choix de simplification d'architecture, qui ne signifie pas pour autant que le Model fait aussi partie de struts.
    Donc, en gros, Struts c'est V+C dans le modèle MVC, et liberté pour le M.
    Voilà, j'espère n'avoir pas trop compliqué encore les choses sur cette notion quelquefois un peu ambigue qu'est le modèle MVC.
    Dans ce cas dans quoi range t'on les form-bean , pour moi dans la partie Model de Struts et non la partie Model des données.

    Vos avis ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par elitost
    Dans ce cas dans quoi range t'on les form-bean , pour moi dans la partie Model de Struts et non la partie Model des données.
    Il est à noter déjà que les form-bean n'existent plus dans struts2, donc ils ne peuvent pas constituer la partie Model de struts. A mon avis il faut juste les ranger dans la catégorie de "classes utilitaires" permettant à Struts 1.x de récupérer automatiquement les données de formulaires html qui vont être ensuite converties avant d'être envoyées à la partie Model (la couche métier).

  7. #7
    Membre actif Avatar de petitpasdelune
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 221
    Points : 231
    Points
    231
    Par défaut
    form-beans font parti de la Vue car ils permettent la saisie et la validation des données entrées par l'utilisateur (cf ici)
    selon les auteurs.

    PPDL.

  8. #8
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    suite à cette discutions, je me pose encore quelque question:
    - les Action struts font elle parties du contrôleur?
    - Sur certaines discutions du net, j'ai remarqué que certains disent que les actions sont du code métier, et d'autre affirme que les action faisant partie du contrôleur ne contient aucun traitement, seulement des appels de code métier se trouvant dans le modèles. Qui croire?
    - Donc question qui découle: où mettre le code métier?

    Actuellement voici mon schéma qui ressort de mes réflexion:
    Vue : pages jsp
    Contrôleur :
    - local : servelet Struts
    - globale : class Action
    Modèle :
    - Form bean
    - Des autres objets de données
    - Classe d'accès au données
    - Classe métiers

    Suis-je en accord avec les recommandation MVC2?

  9. #9
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Les Actions Struts font bien partie du Contrôleur et si nécessaire, font appel au code métier du Modèle mais ne doivent en aucun cas contenir du code métier.

    Quant aux form-beans, comme c'est écrit ici :
    Note: While ActionForm beans often have properties that correspond to properties in your Model beans, the form beans themselves should be considered a Controller component. As such, they are able to transfer data between the Model and View layers.
    ils sont considérés comme des composants du Contrôleur parce qu'ils permettent le transfert de données entre le Modèle et la Vue.

  10. #10
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    .... Ok, dans ma tête, les beans c'est le modèle, mais il est vrai que les forms ne sont pas vraiment des beans...
    donc je devrait finalement me retrouver avec l'architecture suivantes:
    Vue : pages jsp
    Contrôleur :
    - local : servelet Struts
    - Form bean
    - globale : class Action
    Modèle :
    - Des autres objets de données
    - Classe d'accès au données
    - Classe métiers

    merci!

  11. #11
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Les JavaBeans font effectivement partie du modèle.
    Pour les form-beans, je t'ai donné mon point de vue.
    Maintenant, d'après les autres messages, c'est discutable.

  12. #12
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    Pour les form-beans, je t'ai donné mon point de vue.
    Maintenant, d'après les autres messages, c'est discutable.
    En effet il y a beaucoup de discutions à ce sujet, mais tu ne fait que citer le site de la fondation Apache, qui me parait plutôt fiable, et je ne voit pas trop de raison de le contester. Bon après ce ne sont que des recommandation, si certains estime que ce modèle n'est pas correcte, libre à eux de le modifier!

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 433
    Points : 112
    Points
    112
    Par défaut
    V : jsps : fonction uniquement d'affichage

    C: formbeans +actions+ strutsconfig.xml+validation.xml : routage et controle des données

    M : (métier et (ou DAO)) : code métier et ou intéractions avec les bases de données

    Dao: optionel : intéractions avec les bases de données.

    J'ai travaillé sur 2 frameworks struts et un framework propriétaire, et je suis absolument sur et certain de ce que j'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [NHibernate] Classes et proxy, "qui est qui ?" "qui fait quoi" ?
    Par mitchairben dans le forum NHibernate
    Réponses: 0
    Dernier message: 08/10/2009, 13h03
  2. [ASP.NET MVC] C'est quoi ?
    Par DranDane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/09/2008, 12h48
  3. [cURL] La question qui tue : C'est quoi une librairie ?
    Par psychoBob dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/05/2006, 01h09

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