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]case a cocher


Sujet :

Struts 1 Java

  1. #1
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut [Struts layout]case a cocher
    Salut a tous, je présente une collection dans une jsp à l'aide de struts layout en utilisant le tag <layout:collection>, je voulais savoir comment avoir une colonne avec des case a coché devant chaque ligne de mon tableau?
    merci à tous.

  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
    Tu as un exemple dans la demo ici.
    Si cela correspond bien à ce que tu souhaite, tu peux télécharger le code de la Demo ici.

  3. #3
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    Ben j'ai vu ce code source mais le tag utilisé est <layout:datagrid>, je ne suis pas un expert de struts layout, mais j'ai une liste en scope request que je voudrais afficher dans ma page jsp avec des case a coché pour chaque ligne. Pour traité les collections le tag <layout:collection> est le plus approprié non.
    De plus j'ai lu dans la description des tag ici
    que l'on pouvait avoir des case avec ce tag.
    Est ce possible? si oui comment? ou alors est ce que le seul moyen c'est avec le tag <layout:datagrid>?

  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
    As-tu essayé d'insérer un tag layout:checkbox dans le tag layout:collection comme il est indiqué dans la FAQ de Struts-Layout ici ?

  5. #5
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    Voici mon code qui ne marche pas, je passe ma collection dans une requete aprés l'avoir créer dans une action qui m'affiche la page jsp dans laquelle je voudrais avoir les éléments de la liste et en premiere colonne les case a coché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <layout:row>
    		<layout:collection name="liste" id="job" styleClass="FORM" indexId="index">
    			<layout:collectionItem title="job.isSelected">
    				<layout:checkbox property="job[$(index)].selected"/>
    			</layout:collectionItem>
    			<layout:collectionItem title="job.nom" property="nom" />
    			<layout:collectionItem title="job.etape" property="etape" />
    			<layout:collectionItem title="job.machine" property="machine" />
    		</layout:collection>
    	</layout:row>
    Ce code ne marche pas si quelqu'un peut m'aider un peu merci.
    j'ai l'erreur suivante Error 500: Cannot find bean under name org.apache.struts.taglib.html.BEAN

  6. #6
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    J'ai un peu modifié le code sa m'a l'air mieux mais cela ne fonctionne toujours pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <layout:row>
    		<layout:collection name="liste" id="job" styleClass="FORM" indexId="index">
    			<layout:collectionItem title="job.isSelected">
    				<layout:checkbox name="job" property="liste[${index}].selected" />
    			</layout:collectionItem>
    			<layout:collectionItem title="job.nom" property="nom" />
    			<layout:collectionItem title="job.etape" property="etape" />
    			<layout:collectionItem title="job.machine" property="machine" />
    		</layout:collection>
    	</layout:row>
    Error 500: Cannot find bean under name liste

  7. #7
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    Aprés quelques modifications j'arrive à cette erreur :
    Error 500: No getter method for property job[0].selected of bean job
    Mais en faite j'ai juste besoin d'afficher ses cases a cocher comme un moyen de sélection c'est tout, j'ai suivi l'exemple du site, donc cela m'a obligé a rajouté une propriété selected, mais je n'ai pas besoin de cette propriété dans mon objet.
    N'y a til pas un moyen d'ajouter juste les case a coché sans qu'elle soit relié a une propriété du bean?? Sa serait plus simple....

    En mettant uniquement sa pour le tag <layout:checkbox> :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...............
    <layout:checkbox name="job"/>
    ...............
    Sa m'affiche bien l'objet auquel je veux accéder : test.webapp.TestObject@9668lkj....
    mais si j'ajoute l'attribut property il ne trouve pas de getter, pourtant y en a un dans ma classe TestObject j'ai un attribut private boolean selected avec méthode get et set.

  8. #8
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Par défaut
    Ouf! j'ai finalement réussi avec le code ci dessous, je ne sais pas si c'est la meilleur solution pour l'instant, j'avais des problèmes dans l'affichage car cela m'afficher la valeur de mon booléan a coté de la case a coché, il fallait mettre l'attribut layout = false.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <layout:row>
    		<layout:collection name="liste" id="job" styleClass="FORM" indexId="index">
    			<layout:collectionItem title="job.isSelected">
    				<layout:checkbox name="job" property="selected" layout="false"/>
    			</layout:collectionItem>
    			<layout:collectionItem title="job.nom" property="nom" />
    			<layout:collectionItem title="job.etape" property="etape" />
    			<layout:collectionItem title="job.machine" property="machine" />
    		</layout:collection>
    	</layout:row>
    Par contre j'aurai une question concernant toujours les cases a cochées mais utilisées dans un tag <layout:form action="/uneAction">. Quand est ce que l'action démarre? ou comment se déclenche l'action? contrairement a un formulaire avec un bouton submit.

  9. #9
    Membre averti
    Inscrit en
    Août 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2006
    Messages : 22
    Par défaut
    Pour ajouter une checkbox ou un bouton radio il suffit de renseigner deux propriétés, comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<layout:collection name="relBean" property="listRelFille"
    		styleClass="FIELDTAB" styleClass2="FIELDTAB2" selectProperty="id"
    		selectType="radio" selectName="selection" >
    Ca ajoute un bouton radio dont la valeur est le contenu de la propriété id du bean de la liste listRelFille, qui est la liste affichée.

    C'est ce que j'ai trouvé dans la doc, ça marche bien.

    Comment exploiter cette valeur lors de la soumission du formulaire (contenant la liste) ?

    Et bien selectName indique que la propriété "selection" de mon formulaire sera remplie avec la valeur du bouton radio.

    En fait ça marche pô... j'ai fait comme ça du coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <layout:collection name="relBean" property="listRelMere" styleClass="FIELDTAB" styleClass2="FIELDTAB2" id="mere">
     
       <layout:collectionItem title="title.empty">
    	<html-el:radio name="diaForm" property="selection" value="${mere.id}"/>
       </layout:collectionItem>	
    ...

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

Discussions similaires

  1. [Struts-Layout] case à cocher et layout option
    Par pigpen dans le forum Struts 1
    Réponses: 10
    Dernier message: 03/06/2009, 13h34
  2. [Struts-Layout] case à cocher
    Par tomy29 dans le forum Struts 1
    Réponses: 39
    Dernier message: 07/11/2008, 15h03
  3. [struts layout] case à cocher
    Par david06600 dans le forum Struts 1
    Réponses: 5
    Dernier message: 02/01/2007, 12h16
  4. Réponses: 2
    Dernier message: 14/12/2006, 15h43
  5. [struts layout]case à cocher
    Par david06600 dans le forum Struts 1
    Réponses: 12
    Dernier message: 01/12/2006, 11h13

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