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 :

Liste dynamique dans un formulaire


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
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut Liste dynamique dans un formulaire
    Bonjour,

    Je suis en train de réaliser une page qui contient un formulaire avec un layout:collection et en javascript, je peux y ajouter des lignes ou en supprimer.
    Plus précisement, j'ai une action Init qui initialise mon formulaire et affiche la page et ensuite j'ai l'action Process qui vient Submitter le formulaire.
    L'ActionForm est mis en session, tout fonctionne correctement

    Sauf quand j'ajoute ou je supprime une ligne j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    j'ai trouvé des messages à ce propos mais je suis perdu dans les différentes solutions....je comprends au départ ma liste a été initialisé avec 2 élements et je viens de rajouter une ligne mais la taille de la liste n'a pas été incrémenté, bizarre car les listes ont l'avantage par rapport au tableau d'être dynamique.... je suis dans les choux ??? pour comprendre exactement le soucis...

    toutes aides, conseils sont les bienvenus.....

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Mon ActionForm représentant mon formulaire mis en scope session dans les 2 actions:
    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
    18
    19
    20
    21
    22
    23
    24
     
    public class TestForm extends ActionForm
    {
     
    private String numero;
    private Collection<Commentaire> list;
    public TestForm()
    {
    list=new ArrayList<Commentaire>();
    }
     
    ..etc...
    getters / setters
    }
     
    public class Commentaire
    {
     
    private String libelle;
    private String date;
     
    ..etc...
    getters / setters
    }

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Ça ressemble au problème typique de suppression en boucle.
    Tu récupères une liste d'identificateurs d'éléments à supprimer ?
    Si oui, tu devrais utiliser une boucle inverse parce qu'à chaque suppression l'indice des éléments suivants est modifié...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Mais en fait, mon problème est POUR LE MOMENT, quand je rajoute une ligne. J'essaie de faire étape par étape, la suppresion d'un commentaire viendra plus tard.

    Scénario 1 :
    Le formulaire de ma page est initialisée par l'action Init, la liste des commentaires comporte 2 éléments, cette page s'affiche correctement, si je la submite vers l'action Process sans rajouter de commentaire : tout fonctionne bien !

    Scénario 2 :
    Le formulaire de ma page est initialisée par l'action Init, la liste des commentaires comporte 2 éléments, cette page s'affiche correctement, si je rajoute un commentaire donc une ligne(un tr dans ma table html) grâce à mon code javascript je submite la page vers l'action Process : mon erreur apparait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
    J'ai du mal à trouver la solution car je ne vois pas trop d'où vient le problème, pourquoi cette erreur alors que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private Collection<Commentaire> list;
    Bêtement j'aurais pensé qu'il se débrouillait comme un grand pour populer ma liste avec les éléments de mon formulaire présent dans la page....

    je suis un peu perdu ..... toutes aides, conseils sont les bienvenus !!
    merci

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    La liste de valeur (côté ActionForm) n'a que 2 entrées.
    Tu envoies ta page avec 3 entrées d'où l'erreur.
    Il faudrait implémenter la méthode reset(...) de l'ActionForm pour adapter la taille de la liste.
    Ce que tu essayes de faire est plutôt adapté au taglib <layout:datagrid>, pourquoi ne l'utilises-tu pas ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 230
    Par défaut
    Ce que tu essayes de faire est plutôt adapté au taglib <layout:datagrid>, pourquoi ne l'utilises-tu pas ?
    j'avais commencé par ce composant qui me facilitait la chose mais il ne répond pas exactement à mon besoin.
    Mon but final est d'afficher la liste de commentaire suite à l'action Init sans donner la possibilité à l'utilisateur de modifier les propriètés(libellé, date) des commentaires déjà existant mais qu'il puisse ajouter simplement des commentaires en plus et plus tard de pouvoir supprimer un ou des commentaires grâces à une checkbox devant chaque ligne.
    Enfin l'utilisateur a soit ajouter certains commentaires, soit supprimer des commentaires déjà existants, puis il va cliquer sur le bouton valider, il va submité la page avec la nouvelle liste de commentaires.
    Pour le moment restons sur la POSSIBILITE d'AJOUTER UNE nouvelle LIGNE.

    La liste de valeur (côté ActionForm) n'a que 2 entrées.
    Tu envoies ta page avec 3 entrées d'où l'erreur.
    Il faudrait implémenter la méthode reset(...) de l'ActionForm pour adapter la taille de la liste.
    Oui, elle n'a que 2 entrées, 2 commentaires dans la liste à l'initialisation.
    Ensuite j'ajoute une ligne supplémentaires, donc maintenant il y a 3 commentaires dans la liste et je submitte le formulaire..... et boum ERREUR !! comme indique dans les posts precedents...
    je souhaiterais recuperer dans l'action Process la liste des 3 commentaires.

    Quoi mettre dans le reset ??? surement pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new ArrayList<CommentaireBeanUI>();
    car je vais perdre tous les commentaires de ma liste car la methode va être appeller à la suite de mon SUBMIT.

    merci de t'intéressé à mon Probleme, car je galere grave ... surement par un manque de connaisance au niveau de struts 1.3....

    En attente de suggestions, aides...

Discussions similaires

  1. affichage d'une liste déroulante dynamique dans un formulaire
    Par manelll dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/06/2015, 12h42
  2. Script liste de choix dynamique dans un formulaire
    Par Carlycox dans le forum APIs Google
    Réponses: 1
    Dernier message: 26/12/2013, 17h55
  3. [MySQL] Liste dynamique dans un formulaire
    Par Odulo dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/01/2007, 15h11
  4. Réponses: 4
    Dernier message: 23/04/2006, 21h27
  5. Réponses: 5
    Dernier message: 25/10/2005, 20h51

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