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

Format d'échange (XML, JSON...) Java Discussion :

[Digester] addCallMethod et passage de paramètres


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut [Digester] addCallMethod et passage de paramètres
    Bonjour,

    je voudrais créer un objet à l'aide de Digester dans le lequel je renseigne certaines valeurs à l'aide des valeurs présents dans le fichier XML et d'autres à l'aide de variables (donc pas des données de mon fichier XML).

    J'ai donc ceci pour l'instant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    String suffix = "toto";
    digester.addObjectCreate("commande/"+suffix, CaracteristiqueCommande.class);
    digester.addCallMethod("commande/"+suffix, "setValeur", 0);
    Cela me permet d'appeler la méthode setValeur est lui passant en paramètre le contenu de la balise commande/toto. Ceci marche bien.
    Mon problème est que je voudrais appeler une autre méthode en lui passant cette fois la valeur de la variable suffix. J'avais pensé à utiliser les méthodes push ou pushParams, mais je n'ai pas réussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Class [] typeParams = { String.class };;
    digester.addCallMethod("commande/"+suffix, "setBaliseXml", 1, typeParams);
    digester.push(suffix);
    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Salut,

    Il me semble que pour rajouter un paramètre à une méthode tu dois utiliser callParamRule et pas push.
    Essaie de voir de ce côté.

    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    apparemment avec addCallParam, on ne peut pas passer de variable, il faut forcément que le paramètre soit une valeur contenu dans le fichier XML, donc ce n'est pas ce que je veux

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Normalement avec addCallParam tu peux récupérer un objet dans la pile non?

    Tu fais d'abord un push pour mettre ton objet dans la pile puis tu appelles la méthode. Et tu dis que ton paramètre et au sommet de la pile.
    Ce qui donnerait à peu près ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    digester.push(suffix);
    Class [] typeParams = { String.class };
    digester.addCallMethod("commande/"+suffix, "setBaliseXml", 1, typeParams);
    digester.addCallParam("commande/suffix", 0);
    A tester mais il me semble que ça doit être ça.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Par défaut
    ta solution me laissait une ClassCastException, mais j'ai trouvé une autre solution qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    digester.addCallMethod("commande/"+suffix, "setBaliseXml", 1);
    digester.addObjectParam("commande/"+suffix, 0, suffix);
    Merci pour votre aide !

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

Discussions similaires

  1. [Forms]Passage de paramètre entre Forms et Reports
    Par jack554 dans le forum Reports
    Réponses: 4
    Dernier message: 30/03/2004, 13h58
  2. probleme lors du passage de paramètre
    Par maxmj dans le forum ASP
    Réponses: 4
    Dernier message: 18/11/2003, 00h15
  3. [XSL] Passage de paramètres à un template
    Par pantin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/06/2003, 13h28
  4. passage de paramètres
    Par pram dans le forum XMLRAD
    Réponses: 5
    Dernier message: 18/02/2003, 17h28
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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