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 :

[Form][Bean][Validator]Réutilisabilité ? ou comment ne pas faire le travail n fois ?


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 [Form][Bean][Validator]Réutilisabilité ? ou comment ne pas faire le travail n fois ?
    Bonjour,

    Voilà, j'ai d'un côté une application swing, qui va utiliser des bean java simples (des POJO comme on dit) avec des attributs et leurs getters et setters.

    D'un autre côté j'ai une application web qui utilisent la même base de données, donc foncièrement les mêmes beans.

    L'application web utilise le framework Struts, et des classes Forms héritant de ValidatorForm.

    Est il possible plutôt que d'avoir à créer toutes ces Forms qui auront les mêmes propriétés que les beans, de les utiliser du côté de l'application we ?

    Si oui, comment faire ?


    Merci d'avance

  2. #2
    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
    Bonjour elitost,

    Moi je dirais .... ou la !!! surtout pas.

    Les Forms Struts ne sont pas destiné à être utiliser pour la partie métier.

    Mais pour faciliter ton developpement, rien de t'empeche d'utiliser un wrapper.

    dans ton Form, tu declares une proprieté wrapper qui n'est rien d'autre que ton objet metier.

    Ensuite les methodes getter setter font référence a cette objet. Comme ca tu modifies directement ton objet metier mais en passant par l'implementation du Form.

    Du coup si ta conception est faite correctement tu a un objet metier generic qui sera le wrapper d'une action generic et ainsi tu as fait 80% du travail, il ne te reste plus qu'à étendre tes classes generiques pour le spécifique.

    J'espere que ca répond à ta question?

    Yolepro.

    PS : une astuce sous eclipse (mais ca doit exister ailleurs), il existe un option pour generer les methodes automatiquements dans ton Form... Je cherche 2 sec et je reviens

  3. #3
    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
    Re

    La methode est la suivante :

    J'ai un objet metier exemple utilisateur :

    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
    public class Utilisateur  implements Serializable {
     
        private String nom;
     
        private String prenom;
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }  
    }
    Tous mes Forms sont basé sur cet objet metier.
    Alors j'utilise un wrapper :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class GenericForm   extends ActionForm {
     
        /**
         * impotWrapper 
         */
        private Utilisateur wrapper= null;
     
        public void init(Utilisateur utilisateur) {
            wrapper=utilisateur;
        }
    }
    Puis pour générer les méthodes qui vont bien, je click droit sur le wrapper et je fais "Sources / Generate Delegate Methods" et hop il me fait tout tout seul.

    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
    public String getNom() {
            return wrapper.getNom();
        }
     
        public String getPrenom() {
            return wrapper.getPrenom();
        }
     
        public void setNom(String nom) {
            wrapper.setNom(nom);
        }
     
        public void setPrenom(String prenom) {
            wrapper.setPrenom(prenom);
        }

  4. #4
    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 je vais voir, ça m'a l'air pas mal.

    Petite question en passant :

    Dans les pages jsp, en reprenant ton exemple,si j'utilise une property nom du form genericForm, le nom de la property correspond à la méthode getNom(), pas la peine d'avoir la propriété dans la classe genericForm ?

  5. #5
    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
    non pas la peine.

    Struts fait une introspection des méthodes get et set (ou set et is pour les booleans).

    Edit : de quoi j'ai cru entendre une voie

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    une introspection

  7. #7
    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
    Super, merci ça fonctionne bien avec le wrapper.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2010, 23h02
  2. Comment ne pas faire afficher "HTTP/1.1 200 OK"?
    Par fumesec dans le forum Apache
    Réponses: 1
    Dernier message: 18/08/2008, 18h42
  3. Comment ne pas faire dépasser un ballon tip d'une page?
    Par patricklinden dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 26/12/2007, 09h05
  4. Réponses: 2
    Dernier message: 16/07/2007, 09h31

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