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-Layout] Comment utiliser collectionInput


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 25
    Par défaut [Struts-Layout] Comment utiliser collectionInput
    Bonjour tout le monde

    Je veux afficher une liste éditable avec la balise <layout:collectionInput> mais j'obtiens une erreur du type:
    Invalid use of collectionInput tag
    Est ce que quelqu'un peut m'aider à comprendre la source :
    "champs8" et "champ9" sont des champs de ma liste.
    J'utilise les même noms pour les attributs property et dans mon action form
    Voilà ci dessous
    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
    <%
        DaoNonconformite noncon=new DaoNonconformite();
        ArrayList ListeNonconAna = new ArrayList();
        ListeNonconAna=noncon.afNonconAnaTrait();
        session.setAttribute("ListeNonAnatrait",ListeNonconAna);   
    %>
    <layout:form action="nonconanatrait"> 
       <logic:present name="ListeNonAnatrait">
           <logic:empty name="ListeNonAnatrait">
                Aucune non conformité n est encore analysée;
            </logic:empty>
       </logic:present>
       <logic:present name="ListeNonAnatrait">
            <layout:collection name="ListeNonAnatrait" styleClass="FORM"   selectType="radio" selectName="selected2" selectProperty="champ2"  >
               <layout:collectionItem title="Coût en temps" property="champ8" sortable="true" />
               <layout:collectionInput title="Libellé de Traitement" formProperty="champ9" property="champ9"/>
               <layout:collectionInput title="Date du Traitement" formProperty="champ8"  property="champ8"/>
            </layout:collection>
       </logic:present>
       <layout:row>
           <layout:submit property="delete2" value="supprimer" />
       </layout:row>
    </layout:form>

  2. #2
    Expert confirmé

    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
    Par défaut
    Dans l'ActionForm, il faut définir getter et setter indexés sur les propriétés champ8 et champ9.

    Voici un exemple pour une ArrayList userList de beans User ayant pour propriété nom, propriété que l'on veut pouvoir modifier via le tag collectionInput :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public String getNom(int index)
    	{
    		return ((User) this.userList.get(index)).getNom() ;
    	}
    	public void setNom(int index,String nom)
    	{
    		User user = (User) this.userList.get(index) ;
    		user.setNom(nom) ;
    		this.userList.set(index,user) ;
     	}

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 25
    Par défaut
    Merci ,mais c'est pas tout à faire claire

    J'ai un peu de difficulté à comprendre l'exemple:
    Est-ce que UserListe est une propriété du bean User? Je demande cela parceque dans mon cas, la liste que j'ai mise en session dans la page Jsp n'a rien à voir avec l'action form dans laquelle je définis les propriétés champ8 et champ9.Ma liste contient les résultats d'une requête .
    J'ai l'intention d'afficher cette liste dans la collectionInput pour pouvoir modifier deux champs dans la liste et récupérer les valeurs modifiées dans champ8 et champ9 de l'action Form bean.
    Est ce je dois récupérer ma liste dans mon action form? si oui, comment?

    Merci encore pour tout.

  4. #4
    Expert confirmé

    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
    Par défaut
    Effectivement, dans mon exemple, userList est une propriété de mon ActionForm.
    J'ai l'habitude de créer une Action qui initialise le formulaire par exemple comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ArrayList userList = new ArrayList() ;
    userList.add(new User("Peter","Gabriel")) ;
    userList.add(new User("Dave","Gahan"));
    ...
    MonActionForm monActionForm = (MonActionForm) form ;
    monActionForm.setUserList(userList) ;

  5. #5
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 25
    Par défaut
    Bonjour
    j'ai déclaré et initialisé ma liste comme tul'as indiqué;je crois que j'y suis presque
    mais j'obtient l'erreur suivante:
    Getter for property champ9[0] threw exception:java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

    Merci d'avance;

  6. #6
    Expert confirmé

    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
    Par défaut
    As-tu modifié le code de la jsp ? si oui, peux-tu le montrer ?

    EDIT : et aussi celui de l'Action et de l'ActionForm ?

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

Discussions similaires

  1. [Struts-Layout] Comment utiliser son propre SortUtil ?
    Par benamira dans le forum Struts 1
    Réponses: 4
    Dernier message: 09/08/2010, 17h54
  2. [ JSP ][ Struts-Layout ] Comment faire???
    Par Houbbba dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/06/2010, 10h13
  3. Réponses: 1
    Dernier message: 29/09/2006, 12h00
  4. [Struts layout] comment faire un ascenseur dans un tableau
    Par chouchou93 dans le forum Struts 1
    Réponses: 4
    Dernier message: 21/02/2006, 09h08
  5. [Struts][Messages]Comment utiliser du code HTML
    Par Tueur_a_gage dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 12/12/2005, 10h35

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