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

Persistance des données Java Discussion :

Comment remplir un bean a partir d'un fichier xml


Sujet :

Persistance des données Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Comment remplir un bean a partir d'un fichier xml
    J'ai besoin de remplir un bean (getter et setter) à partir d'un fichier de config en xml. Connaissez vous une solution pour y parvenir, j'ai entedu parler de digesters de jakarta mais je ne sais pas si c'est bien adapté.
    en attente de vos réponses

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    J'ai eu le même problème que toi récemment et j'ai redéveloppé une classe qui me permet de faire le boulot... par contre, elle est spécifique à mon appli, et je ne peux pas te la fournir "telle quelle".

    Voici la démarche que j'ai adoptée:
    - lecture du fichier XML avec jdom
    - pour chaque 'element' jdom, je recherche le setter correspondant sur la classe et je l'invoque.
    Pour trouver une méthode, il faut utiliser le package java.lang.reflect de JAVA.

    Supposons que tu trouves un element "toto" dans ton XML, voici comment tu trouves le "setter" associé sur ta classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public Method findSetter(Class maClasse, String nomAttribut, Class typeAttribut) {
       Method monSetter = null;
       Class[] typesAChercher = {typeAttribut};
       try {
          monSetter = maClasse.getMethod("set"+nomAttribut, typesAChercher);
       } catch (Exception e) {
          // Gestion des erreurs
       }
       return monSetter;
    }
    Ensuite, tu peux invoquer directement la methode.

    Bien sûr, il y a encore pas mal de boulot. Pour ma part, j'ai géré ces différents points et ça répond à mon besoin:
    - si l'objet à setter est doit d'abord etre généré (nouvelle instance)
    - pour rendre ton système entièrement récursif, avec autant de niveaux que tu veux dans l'XML (auquel cas, les premiers objets générés sont les plus profonds de l'arbre XML, que l'on remonte récursivement dans les objets "contenant" jusqu'à revenir à la racine de l'arbre)
    - pour traiter à la fois les "element" jdom et les "attributs" de tes éléments. Pour ma part, les attributs cherche un setter attendant un paramètre de type "String", et les éléments correspondent à des objets d'abord instanciés, puis "settés".

    (En gros, j'ai recodé à ma sauce une gestion des Beans de type "Spring"... mais avec des variantes dont j'avais besoin, pour la gestion particulière de HashMap ou de listes en particulier)

  3. #3
    Membre émérite
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Points : 2 999
    Points
    2 999
    Par défaut
    Salut,
    Vous pouvez jeter un oeuil à des frameworks de binding Java/XML comme JAXB, XMLBeans ou tout simplement des API de sérialization comme XStream.
    Ca vous évitera de réinvener la roue
    Bonne chance.
    @+

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/09/2010, 15h00
  2. Réponses: 2
    Dernier message: 15/06/2009, 09h59
  3. comment remplir un jtable a partir d'un textfield
    Par yasmina13 dans le forum JBuilder
    Réponses: 8
    Dernier message: 02/01/2009, 18h35
  4. Réponses: 7
    Dernier message: 25/06/2007, 14h14
  5. Réponses: 19
    Dernier message: 13/03/2006, 14h06

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