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 :

Accéder au datasource à partir d'une ActionForm


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Par défaut Accéder au datasource à partir d'une ActionForm
    Bonjour,
    je voudrait afficher une liste d'éléments dans un formulaire, je veut donc dans mon bean ActionForm pouvoir récupérer cette liste dans ma base de données.

    Dans mon struts-config j'ai configuré mon datasource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <data-sources>
         <data-source type="org.apache.commons.dbcp.BasicDataSource">
        <set-property property="driverClassName" value="" />
        <set-property property="url" value="" />
        <set-property property="username" value="" />
        <set-property property="password" value="" />
        <set-property property="defaultAutoCommit" value="false" />
        <set-property property="defaultReadOnly" value="false" />
        <set-property property="validationQuery" value="SELECT 1 FROM dual" />
      </data-source>
    j'arrive à acceder à ma base à partir d'une action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dataSource = getDataSource(request);
    Cependant à partir de mon ActionForm je n'est pas la variable request. Comment doit-je récupérer le dataSource dans l'ActionForm ?

    Merci pour vos réponses.

    PS : je sait que ce n'est pas conseillé de configurer le datasource dans struts et qu'il serait plus interessant de le faire à partir de TomCat mais on me demande des résultats rapidement donc même si c'est mal programmé, le client veut le resultat

  2. #2
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 57
    Par défaut
    Je pense que ce n'est pas dans ton ActionForm que tu dois appeler la datasource.

    C'est dans ta classe Action (celle déclarée dans <action-mapping> dans ton fichier struts-config.xml) qui va afficher ta page qui contiendra ton formulaire, c'est à ce moment là que tu fais appel à ta datasource

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class FormulaireAction extends Action {
     public ActionForward execute(ActionMapping mapping, ActionForm form,
     HttpServletRequest request, HttpServletResponse response) throws Exception {
     dataSource = getDataSource(request);
    /* tu remplis ensuite ton actionForm et tu pense a l'enregistrer dans la session */ 
    session.setAttribute("le_nom_de_ton_formulaire_que_tu_utilise_dans_ta_jsp",formulaire);
      }
    }
    Enfin bon au lieu de faire appel à ta datasource, je te conseillerai d'appeler une méthode de ta couche métier qui elle appelerait une méthode dans ta couche DAO, mais bon c'est plus un problème d'architecture après.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Par défaut
    Merci de ta réponse,

    J'ai essayé de faire ceci par l'action vu qu'apperement ca ne se fait pas dans l'ActionForm. Dans mes tutoriaux que j'ai lu, c'était mentionné que l'ActionForm devait accéder au données, c'est pour ca que je voulait le faire dans l'ActionForm. Et puis pour l'affichage ensuite ca aurait été plus facile.


    En ce qui concerne ton autre solution qui remplacerai le datasource, ca serai de faire par exemple une classe AccesDB qui gère l'accès à la base et ensuite mon ActionForm accéderai à la base à partir de cette classe ?

  4. #4
    Membre confirmé Avatar de zambizi
    Inscrit en
    Juin 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2007
    Messages : 109
    Par défaut
    tu peux aussi faire ça dans le l'ActionForm, avec la mèthode validate() elle a toujour le paramètre request!!

    et tu peur récuperer le datasource!

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut Accéder au datasource à partir d'un ActionForm
    Bonjour,

    Struts est un framework respectant le MVC2.
    Ce type d'architecture impose qu'une application soit divisée en 3 parties complètement autonomes et distinctes.

    C'est la raison pour laquelle les actionForm ne peuvent avoir un accès aux données

    Donc pour initialiser tes actionForms, tu dois créer des Struts actions qui vont aller chercher les données dans ta base de donnée (ou mieux, dans une autre couche dite DAO) et les ajouter dans ton ActionForm.

    Bonne continuation ;o)

    Eric.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Par défaut
    Citation Envoyé par g56589 Voir le message
    Donc pour initialiser tes actionForms, tu dois créer des Struts actions qui vont aller chercher les données dans ta base de donnée (ou mieux, dans une autre couche dite DAO) et les ajouter dans ton ActionForm.

    Le problème est de savoir comment ajouter les données que l'on a recupérer à partir de l'action dans l'ActionForm.
    Pour contourner ce problème, j'ai fait un accès au données dans une action, j'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("listedonnees", ListeDonnees);
    puis après je récupère dans la jsp cette variable.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/05/2014, 13h48
  2. Comment accéder à plusieurs comptes à partir d'une seule interface
    Par phplover_2010 dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 21/07/2010, 11h57
  3. Accéder à un UIElement à partir d'une classe externe
    Par tom741 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 02/12/2009, 20h51
  4. Appel une méthode à partir d'une ActionForm
    Par barchoui dans le forum Struts 1
    Réponses: 7
    Dernier message: 28/12/2008, 21h03
  5. Réponses: 22
    Dernier message: 03/02/2005, 16h43

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