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 :

Appel une méthode à partir d'une ActionForm


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut Appel une méthode à partir d'une ActionForm
    salut,
    je veux remplir une liste déroulante à partir d'une méthode existée hors Struts alors si je le fait à partir de monAction comme décrit en faq de struts j'ai rencontré des erreurs par contre il ca marche bien si l'appel fait à partir de monActionForm.
    est ce que je terminerai avec cette façon ou bien autre chose?
    merci pour l'aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    ok

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    ok
    alors il y a la possiblité d'appler une méthode(méthode existée dans la couche métier) à partir de mon ActionForm ,pas de problèmes(éventuels) après l'exécution de l'application ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    non, c'était ironique, j'ai dit ok parceque j'ai rien compris à ce que tu veux...
    Tu souhaites remplir un menu déroulant de ton actionForm à partir d'une méthode contenu dans une classe métier? Je comprend pas trop le besoin là... il s'agit d'une collection qui va s'afficher dans la liste deroulante? ta méthode métier renvoit une collection, tu la stocke dans la requete et tu l'utilise dans la jsp pour la mettre dans ton html:select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <html:select property="myproperty" >
    <html:options collection="mycollection" property="prop1" labelProperty="prop2" />
    </html:select>
    ou alors explique ce que tu veux dire par "remplir une liste déroulante.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    salut
    j'explique bien les choses pour que tu pourras comprendre bien.
    donc j'ai une table nommée projet dans une bd dont les champs suivants:code,nom,date_debut,date_fin.
    dans ma page jsp je veux remplir une liste déroulante(html:select) par les noms des projets,voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:select property="selectedItem">
      <html:optionsCollection property="projets" value="code" label="nom"/>
    </html:select>
    l'actionform coresspondante possède les deux proréités comme ceci:
    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
     
    private String selectedItem;
    private ArrayList<Projet> projets;
     
    public String getSelectedItem() {
    	return selectedItem;
    }
    public void setSelectedItem(String selectedItem) {
    	this.selectedItem = selectedItem;
    }
     
    public ArrayList<Projet> getProjets() {
    	return projets;
    }
    public void setProjets(ArrayList<Projet> projets) {
    	this.projets = projets;
    }
    moi je travaille avec hibernate pour la persistence et alors j'ai une méthode DAO permettant de retourner les codes,nomes des projets à partir de la table projet.
    donc pour remplir ma liste déroulante il suffit de remplacer la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList<Projet> projets;
    par cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList<Projet> projets=g.listProjets();
    listProjets():méthode dans la couche métier(hibernate)
    et ca fonctionne bien après l'exécution.
    ma question tout simplement est est ce que possible d'appler cette méthode à partie de mon actionform ou je dois passer par une action comme il est décrit dans FAQ de Struts?

    merci d'avance

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Salut,

    je connais pas hibernate, et je ne sais pas ce qu'est la variable "g", mais ActionForm reste une classe Java comme une autre, donc tu peux très bien initialiser ses membres en appelant des classes métiers... le plus propre serait toutefois je pense, de faire une méthode init() dans ton ActionForm qui se charge de faire tout ça, et après tu fais appel à init() depuis ta classe Action.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 132
    Points : 43
    Points
    43
    Par défaut
    la variable "g" est l'instance de la classe contenant la méthode listProjets()
    donc je peux utiliser la méthode init() de l'ActionForm pour initialiser les propriétés de celle-ci,mais l'appel à cette méthode depuis mon Action pourquoi?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    pour g oui j'imagine bien, c'est juste que tu ne donnes pas le code qui initialise g...
    Il n'y a pas de méthode init() dans la classe ActionForm, à toi d'en créer une. après, je te propose juste d'exécuter cette initialisation depuis ta classe Action. (Et je te parle d'une méthode init() et pas directement d'un constructeur parceque l'instanciation des ActionForm est géré par le framework.)

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/06/2012, 09h27
  2. Obtenir une valeur à partir d'une méthode
    Par Iori Yagami dans le forum JSF
    Réponses: 1
    Dernier message: 24/08/2011, 13h39
  3. Réponses: 2
    Dernier message: 05/01/2009, 12h45
  4. Réponses: 7
    Dernier message: 01/02/2008, 16h12
  5. Appel d'une méthode à partir d'une autre page
    Par mona dans le forum ASP.NET
    Réponses: 9
    Dernier message: 15/09/2007, 23h52

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