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 :

[Struts] elements avec clés aléatoires


Sujet :

Struts 1 Java

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut [Struts] elements avec clés aléatoires
    Bonjour à tous.
    Sur une page du site sur lequel je bosse je dois afficher un nombre aléatoire de textboxs.
    Contrairement aux checkboxs ou on peut en afficher tant qu'on veut tant qu'elles ont les mêmes clés, je suis obligé de donner des clés différentes à mes textboxs sous peine de ne pas savoir lesquelles ont été remplies.
    Mallheureusement struts ne semble pas prévoir ce genre de cas de figure. Les ActionForm ne sont bien évidemment pas suffisants et je n'arrive pas à le faire avec des DynaActionForm. J'ai essaye de les mettre en "dynamic" dans le fichier de configuration mais rien n'y fait.
    Quelqu'un pourrait m'aider?
    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 85
    Par défaut
    Salut,

    Tu peux pas mettre une List dans ton actionForm ? et au moment du submit,
    en javascript, tu remplis ta liste (hidden) avec tes textBox remplies et ensuite
    tu submit ton form ? C'est une idée comme une autre :-)

    a+
    Xavier

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par xfacq
    Salut,

    Tu peux pas mettre une List dans ton actionForm ? et au moment du submit,
    en javascript, tu remplis ta liste (hidden) avec tes textBox remplies et ensuite
    tu submit ton form ? C'est une idée comme une autre :-)

    a+
    Xavier


    Plus sérieusement, il y a des solutions.
    Précises un peu ton besoin en illustrant par un modèle et du code.

    Eric

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Ca me semble une solution assez "bricolage", je préfèrerais utiliser un truc plus simple qui gèrerait ca coté serveur (j'aime pas trop le javascript).
    Et puis Struts est tout de même un framework très utilisé, il doit bien y avoir un moyen de résoudre ce problème.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    C'est simple, j'ai une liste de critères.
    J'affiche une page contenant un nombre totalement dynamique de critères (dépends de 5 ou 6 facteurs). Je veux pouvoir mettre une textbox à coté de chaque critère affiché ou l'utilisateur encode le nombre de critère qu'il veut spécifier.
    Mais ca ne change pas grand chose de le savoir, tout ce que je veux c'est que struts ne vienne pas m'ennuyer si il rencontre une clé d'élément de formulaire qu'il ne connait pas, et si possible qu'il me mette quand même tout ca dans un DynaActionForm (j'ai aussi d'autres éléments statiques sur la même page que j'aimerais bien le voir vérifier).
    Le top serait de pouvoir utiliser un masque pour pouvoir utiliser quand même le validator. Genre "critere*" -> integer, toutes les clés commencant par "critere" doivent être des entiers.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Désolé de faire remonter mais j'aimerais vraiment savoir si il y a un moyen de faire ca.
    C'est vrai que je pourrais toujours faire relayer ma demande par une jsp ou une servlet mais je préfère utiliser Struts dans la mesure du possible.
    Ricky81, tu disais qu'il y avait des solutions, quelles sont-elles?
    Merci d'avance.

  7. #7
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Citation Envoyé par zais_ethael
    Désolé de faire remonter mais j'aimerais vraiment savoir si il y a un moyen de faire ca.
    C'est vrai que je pourrais toujours faire relayer ma demande par une jsp ou une servlet mais je préfère utiliser Struts dans la mesure du possible.
    Ricky81, tu disais qu'il y avait des solutions, quelles sont-elles?
    Merci d'avance.
    Ta description me torture le cerveau et je suis incapable de projeter un solution dessus. En plus tu sembles attaché à utiliser des DynaActionForm, que je ne connais pas assez pour te proposer une solution allant dans ce sens.

    Eric

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Bon, d'accord, voici un morceau de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <p>
       <html:form action="/ajout/AjoutAnomalieEnd">
          <c:forEach items="${criteresList}" var="el">
                ${el.libelle}   <html:text property="critere${el.id}" /><br/>
          </c:forEach>
       </html:form>
    </p>
    Voila. Je ne vais pas m'attarder à décrire ce qu'est un critère de le contexte de mon application, disons juste qu'ils se trouvent dans une table de ma base de donnée et que je les extraits sous forme de bean pour les afficher sur ma page.
    Pour chaque critère affiché (j'affiche ici le libelle) je veux pouvoir mettre une textbox à coté ou l'utilisateur entre le nombre désiré.
    Si il avait été seulement possible de choisir 1 ou 0 comme nombre pour un critère donné, ca aurait été plus facile: j'aurais utilisé des checkbox. Ainsi au lieu d'avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:text property="critere${el.id}" />
    j'aurais eu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:checkbox property="critere" value="${el.id}"/>
    et il aurait été très facile d'utiliser un ActionForm avec comme attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String[] critere;
    Mais voila, ce n'est pas si simple de faire ca avec une liste de textbox, Struts n'apprécie pas de rencontrer des éléments possédant des clés qu'il ne connait pas. Au cas ou, quand je parle de clé il s'agit du nom d'un élémént html(name), ce qui se traduit par la propriété "property" utilisée par Struts.
    Ma question est donc la suivante: comment dire à Struts de laisser passer les clés qu'il ne connait pas? Je ne suis pas déterminé à utiliser un DynaActionForm (en temps normal je préfère les ActionForm) mais à priori c'est ce qui semble le plus proche de mon besoin (un ActionForm ne fera pas l'affaire en tous cas).

  9. #9
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <p>
       <html:form action="/ajout/AjoutAnomalieEnd">
          <logic:iterate property="${criteresList}" id="critere">
                <bean:write name="critere" property="libelle" />
                &nbsp;&nbsp;
                <html:text name="critere" property="id" indexed="true"/><br/>
          </logic:iterate>
       </html:form>
    </p>
    Il y a peut-être des choses à affiner en fonction de ton contexte.

    Eric

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Ca me semble interressant.
    Je viens d'aller consulter la propriété indexed et je ne comprends pas comment on fait pour récupérer tel ou tel valeur, pourrais tu m'éclaircir sur ce point? Dois-je mettre un String[] dans les attributs de mon bean? Comment fait-on pour récupérer la valeur de la 17ème ou de la 23ème textbox?

  11. #11
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    * CritereBean a des attributs nommés id, libelle, etc...
    * critereList est une List de CritereBean que tu définis dans ton actionForm

    Le code généré va ressembler à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="text" name="tonform.critereList[16].id">34</input>
    <input type="text" name="tonform.critereList[17].id">12</input>
    Quand tu vas submiter ton formulaire, struts va faire appel à jakarta commons beanutils pour faire un populate de ton formulaire en appellant pour chaque item de ta liste tonform.getCritereList().get(i).setId(value);

    Eric

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Je n'ai pas tout compris mais je crois que je vais piocher un peu dans cette voie. Merci.

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

Discussions similaires

  1. [Struts] pb avec l'opérateur '/'
    Par njac dans le forum Struts 1
    Réponses: 6
    Dernier message: 29/06/2004, 12h19
  2. [Struts] pb avec jsp:include
    Par njac dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 10/06/2004, 16h14
  3. [struts ] pb avec l'envoie d'un formulaire
    Par njac dans le forum Struts 1
    Réponses: 7
    Dernier message: 09/06/2004, 14h29
  4. [EJB2.1 Entity] [BMP] [Struts] Problème avec <logic:iterate>
    Par romain3395 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/06/2004, 10h12
  5. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49

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