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 :

LookupDispatchAction et boutons identiques


Sujet :

Struts 1 Java

  1. #1
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut LookupDispatchAction et boutons identiques
    Bonjour,

    relativement nouveau dans le développement avec struts 1.3, je dois développer des formulaires contenant des collections d'items eux-même composés de plusieurs champs, le tout sans javascript.

    Un screenshot d'un exemple concret:

    Ici, c'est une collection de noms, où on peut voir trois 'items', chacun contenant deux champs (langue et nom).
    L'utilisateur peut ajouter un nouvel item avec l'unique bouton add de la collection, et supprimer un item en particulier en cliquant sur le bouton 'remove' propre à chaque item.

    Conceptuellement, le code de la page jsp ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    name(s):
    <html:submit property="formSubmitAction">
        <bean:message key="button.add"/> 
    </html:submit>
     
    <nested:iterate property="names" indexId="index">
        <html:submit property="formSubmitAction">
            <bean:message key="button.remove"/>
        </html:submit>
        lang: <nested:text property="lang"/>
        name: <nested:text property="name" size="50"/>
    </nested:iterate>
    Pour mettre plusieurs bouton dans mon formulaire, étant donné que je dois tout faire sans javascript, j'ai utilisé un LookupDispatchAction, comme précisé dans la (super) faq struts, avec le mapping suivant:
    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
     
    public class SubmitAction extends LookupDispatchAction {
        // le mapping:
        protected Map getKeyMethodMap() {
            Map map = new HashMap();
            map.put("button.save", "save"); // le submit principal de la form
            map.put("button.add", "add");
            map.put("button.remove", "remove");
            return map;
        }
        // et les fonction appelées:
        public ActionForward save(/*...*/) { /*...*/ }
        public ActionForward add(/*...*/) { /*...*/ }
        public ActionForward remove(/*...*/) { /*...*/ }
    }
    ainsi que le struts-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <action path="..."
        type="..."
        name="..."
        input="..."
        validate="true"
        scope="request"
        parameter="formSubmitAction">
    Le problème:
    - dans ce cas précis, le bouton 'add' est unique. Donc aucun souci particulier (*).

    - par contre, j'ai un bouton 'remove' pour chaque item. Il faudrait donc que je puisse savoir dans la fonction 'remove' de mon LookupDispatchAction quel bouton 'remove' a réellement été cliqué, afin que je puisse supprimer le bon item de la collection. Or, si j'ai bien compris, le seul paramètre passé par la form à mon action est le label affiché dans le bouton (ici: 'button.remove'), identique pour chacun des boutons de chaque item que j'ai dans mon formulaire.

    Quel moyen puis-je utiliser (sans javascript) pour savoir quel item est concerné dans le cas d'un clic sur un des boutons 'remove' ?

    Merci d'avance

    (*) ça deviendra problématique quand j'aurai plusieurs collections (donc plusieurs boutons 'add') dans le même formulaire.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Personnellement, je ne vois pas de solution à ton problème sans utiliser javascript.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Salut,

    merci pour ta réponse. Plus j'avance dans mes recherches, plus il me semble en effet qu'il n'y a pas vraiment de solution.

    Merci quand même

    ... au cas où quelqu'un ait une proposition, qu'il n'hésite pas
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

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

Discussions similaires

  1. [XL-2007] bouton identique sur plusieurs lignes
    Par vincent59139 dans le forum Excel
    Réponses: 0
    Dernier message: 11/10/2013, 11h09
  2. Réponses: 2
    Dernier message: 27/02/2013, 10h54
  3. Mettre plusieurs boutons identiques
    Par kennyflorian dans le forum Flash
    Réponses: 2
    Dernier message: 08/12/2008, 23h05
  4. Bouton identique sur plusieurs feuilles
    Par jeanmanu dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 08/07/2008, 22h11
  5. Conflit de bouton identique dans un formulaire
    Par lodan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 23/10/2006, 12h04

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