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 :

[Struts1.1] Poster un champ vers 2 actions différentes


Sujet :

Struts 1 Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut [Struts1.1] Poster un champ vers 2 actions différentes
    Bonjour,

    Je développe actuellement une application basé sur le framework Struts.

    Contexte :
    J'ai une ActionForm contenant une liste de beans "compteur" (chaque
    bean "compteur" contient 4 champs). Je les affiche dans une page JSP
    dans un tableau où chaque ligne représente un bean "compteur".
    En dessous de mon tableau, j'ai un bouton submit qui envoi toutes
    les données du tableau vers une Action "Valider".

    Pour plus de détails sur la structure du bean "compteur" et sur
    l'ActionForm, voir le thread suivant sur ce forum :
    http://www.developpez.net/forums/viewtopic.php?t=115753

    Mon problème est le suivant :
    Je cherche à ajouter dans chaque ligne du tableau un bouton permettant
    de supprimer le compteur associé à la ligne mais je ne sais pas comment
    à la fois sousmettre les champs de ma ligne à l'action "Supprimer" mais
    aussi sousmettre l'ensemble du tableau à l'action "Valider".

    Y a-t-il un moyen de sousmettre un champ à plusieurs actions différentes
    avec des boutons submit différents ?

    Oliv

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2003
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 229
    Points : 90
    Points
    90
    Par défaut
    Non, mais par contre tu peux, dans la seule Action que tu appelle, reafficher ta jsp avec un champs supprimé.
    hocine

  3. #3
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    il faut utiliser le lookupDispatchAction ou le dispatchAction.


    Va voir sur le site de ted husted (husted.com) il y a des tips sur ca.


    Chaque bouton aura un nom ( par exemple celui du compteru auquel il corresponds et il pourra declancher une action particulière dans la classe Action ).


    @+

  4. #4
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Exemple:

    dANS TA jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <html&#58;hidden property="dispatch" value="error"/> 
    <SCRIPT>function set&#40;target&#41; &#123;document.forms&#91;0&#93;.dispatch.value=target;&#125;</SCRIPT>
    <html&#58;submit onclick="set&#40;'CPT1'&#41;;">Compteur 1</html&#58;submit>
    <html&#58;submit onclick="set&#40;'CPT2'&#41;;">Compteur 2</html&#58;submitl> 
    <html&#58;submit onclick="set&#40;'CPT3'&#41;;">Compteur 3</html&#58;submit>
    Dans la classe Action ( qui herite de DispatchAction )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public ActionForward CPT1&#40;
        ActionMapping mapping, 
        ActionForm form, 
        HttpServletRequest request, 
        HttpServletResponse response&#41; 
      throws IOException, ServletException &#123; ...
     
    public ActionForward CPT2&#40;
        ActionMapping mapping, 
        ActionForm form, 
        HttpServletRequest request, 
        HttpServletResponse response&#41; 
      throws IOException, ServletException &#123; ...

    Dans ton fichier XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <action 
      path="/my/dispatch" 
      type="app.reg.myDispatch" 
      name="regForm" 
      scope="request" 
      validate="true" 
      parameter="dispatch"/>

    Voila.


    @+

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Donc si je comprends bien l'attribut "parameter" d'une Action dans le
    struts-config.xml permet d'effectuer un branchement conditionnel dans
    la classe Action en fonction de la valeur de cet attribut.

    Ainsi la fonction execute() de l'Action est remplacée par différentes
    fonctions portant le nom de la valeur de l'attribut spécifié dans le
    struts-config.xml

    Je te remercie de tes conseils RanDomX, je ne connaissais pas ces
    'DispatchAction', ça ouvre pas mal de possibilités... [En fait, je
    faisais déjà manuellement une opération similaire : pour effectuer
    différentes opérations dans une même Action, j'utilisais un paramètre
    caché (hidden) mais cela conduisait à une méthode execute() très
    lourde et difficile à lire.]

    @+

    Oliv

  6. #6
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Oui en fait c souvent ce que l'on fait au depart, sauf que là c tout fait et c intégré dans le struts-config.

    En plus on peut penser que c bien codé....


    @+

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Encore merci pour ces conseils...

    Je continu à découvrir Struts et plus j'avance plus je trouve que
    Struts est bien pensé et relativement facile à utiliser...

    J'encourage donc tout le monde à utiliser cet outil propre et complet.

    @+

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

Discussions similaires

  1. copie des données d'un champ vers un autre
    Par cvlpj dans le forum IHM
    Réponses: 10
    Dernier message: 26/12/2006, 23h15
  2. Réponses: 1
    Dernier message: 26/12/2006, 17h23
  3. [MySQL] transfert d'un champ vers un autre
    Par tom06440 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/11/2006, 23h44
  4. Réponses: 22
    Dernier message: 04/09/2006, 13h53
  5. cherche comment copier le champ vers une autre champ
    Par khier dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/07/2005, 13h20

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