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

JSF Java Discussion :

rich dataTable récupération des données d'une ligne


Sujet :

JSF Java

  1. #21
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    la signature de actionListener:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void methodName(ActionEvent e);
    tu peux utiliser action aussi pour les cas de navigation.

    donne le code que tu as testé et qui ne marche pas.

  2. #22
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    bon j'ai essayé avec et sans f:setPropertyActionListener mais j'imagine que ca marche avec, c'est ce que tu fais textuellement dans ton tuto l'affichage dans un popup ^^

    voilà le code maintenant :

    pour la jsp :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <form>
    	<rich:modalPanel
    		id="modif" minHeight="200" minWidth="450" height="200" width="500" >
    		<f:facet name="header">
    			<h:outputText value="Modifier les informations de l'acteur" />
    		</f:facet>
    		<f:facet name="controls">
    		</f:facet>
    		<h:outputText value="#{contexte.acteurCourant.nom}" />
     
    	</rich:modalPanel>
    </form>
    <form>
    	<rich:dataTable reRender="modif"
    			onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
    			onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
    			width="100%" var="acteurs" value="#{contexte.listeActeurs}">
    			<a4j:support
    					reRender="modif"
    					event="onRowDblClick"
    					action="#{contexte.selectionLigne}"
    				oncomplete="javascript:Richfaces.showModalPanel('modif')">
    				<f:setPropertyActionListener 
    					value="#{acteurs}" 
    					target="#{contexte.acteurCourant}"/>
    			</a4j:support>
     
    			<f:facet name="header">
    				<rich:columnGroup>
    					<rich:column>
    						<h:outputText value="Nom" />
    					</rich:column>
    					<rich:column>
    						<h:outputText value="Prénom" />
    					</rich:column>
    				</rich:columnGroup>
    			</f:facet>
     
    			<rich:column>
    				<h:outputText value="#{acteurs.nom}" />
    			</rich:column>
    			<rich:column>
    				<h:outputText value="#{acteurs.prenom}" />
             		</rich:column>
    	</rich:dataTable>
    </form>
    et dans le bean

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import javax.faces.model.DataModel;
    import javax.faces.model.ListDataModel;
     
    public class ContexteUtilisateur {
     
    	/** Liste des étudiants gérés par l'application. */
    	private List<Acteur> listeActeurs = null;
    	/** Etudiant courant sélectionné. */
    	private Acteur acteurCourant;
     
    	/** Liste des étudiants gérés par l'application. */
    	private List<Realisateur> listeRealisateurs = null;
    	/** Etudiant courant sélectionné. */
    	private Realisateur realisateurCourant;
     
    	/** Liste des étudiants gérés par l'application. */
    	private List<Video> listeVideos = null;
    	/** Etudiant courant sélectionné. */
    	private Video videoCourant;
     
    	public ContexteUtilisateur()
    	{
    		listeActeurs = new ArrayList<Acteur> ();
    		listeRealisateurs = new ArrayList<Realisateur> ();
    		listeVideos = new ArrayList<Video> ();
     
    		listeActeurs.add(new Acteur("B","M"));
    		listeActeurs.add(new Acteur("C","T"));
    		listeActeurs.add(new Acteur("C","O"));
    		listeRealisateurs.add(new Realisateur("S","S"));
    		listeVideos.add(new Video("Le Mépris"));
     
    		acteurCourant=new Acteur("D","F");
     
    	}
     
    	public List<Acteur> getListeActeurs()
    	{
    		return listeActeurs;
    	}
     
    	public void selectionLigne()
    	{
    		System.out.println(acteurCourant);
    	}
     
    	public void setActeurCourant(Acteur act)
    	{
    		acteurCourant=new Acteur(act);
    	}
     
    	public Acteur getActeurCourant()
    	{
    		return acteurCourant;
    	}
     
    }
    Le but est évidemment que le modal panel affiche le nom de la ligne doublecliquée et non celui par défaut ("D")

  3. #23
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    le form doit être à l'interieur de la modalPanel, dans ton cas, vu qu'il y'a pas de submit dans la modalPanel, le form est inutile :


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    	<rich:modalPanel
    		id="modif" minHeight="200" minWidth="450" height="200" width="500" >
    		<f:facet name="header">
    			<h:outputText value="Modifier les informations de l'acteur" />
    		</f:facet>
    		<f:facet name="controls">
    		</f:facet>
                  <h:form> <!-- si ya des inputs ou commandXXX-->
                  <4j:outputPanel id="modalContent">
    		<h:outputText value="#{contexte.acteurCourant.nom}" />
    		</a4j:outputPanel>
                  </h:form>
    	</rich:modalPanel>
     
    <form>
    	<rich:dataTable reRender="modif"
    			onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
    			onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
    			width="100%" var="acteurs" value="#{contexte.listeActeurs}">
    			<a4j:support
    					reRender="modalContent"
    					event="onRowDblClick"
    					action="#{contexte.selectionLigne}"
    				oncomplete="javascript:Richfaces.showModalPanel('modif')">
    				<f:setPropertyActionListener 
    					value="#{acteurs}" 
    					target="#{contexte.acteurCourant}"/>
    			</a4j:support>
     
    			<f:facet name="header">
    				<rich:columnGroup>
    					<rich:column>
    						<h:outputText value="Nom" />
    					</rich:column>
    					<rich:column>
    						<h:outputText value="Prénom" />
    					</rich:column>
    				</rich:columnGroup>
    			</f:facet>
     
    			<rich:column>
    				<h:outputText value="#{acteurs.nom}" />
    			</rich:column>
    			<rich:column>
    				<h:outputText value="#{acteurs.prenom}" />
             		</rich:column>
    	</rich:dataTable>
    </form>

  4. #24
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    merci déjà pour cela.

    rien sur mon problème de mise à jour de acteurCourant ?

  5. #25
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par argonath Voir le message
    merci déjà pour cela.

    rien sur mon problème de mise à jour de acteurCourant ?
    quel problème? tu peux expliquer ce que tu veux faire?

  6. #26
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    pour l'instant le pop up ( c'est à dire le modal panel ) affiche le nom de acteurCourant par défaut ( "d" donc)

    je voudrais que au double clic sur une ligne, l'acteur de la ligne considérée passe dans acteurCourant, et que le pop up s'affiche avec le changement convenable.

    c'est le problème depuis le début le pop up il s'est toujours affiché c'est juste qu'il s'affiche avec la valeur par défaut de acteurCourant et pas celle attendue.

  7. #27
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par argonath Voir le message
    je voudrais que au double clic sur une ligne, l'acteur de la ligne considérée passe dans acteurCourant, et que le pop up s'affiche avec le changement convenable.
    C possible en utilisant le <a4j:support event="ondblclick" action="tu recupére ici les nouvelles valeurs et mettre à jour les propriétés lié au modalPanel" onComplete="javascript:Richfaces.showModalPanel('idPanel');
    et c tout

  8. #28
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par argonath Voir le message
    pour l'instant le pop up ( c'est à dire le modal panel ) affiche le nom de acteurCourant par défaut ( "d" donc)

    je voudrais que au double clic sur une ligne, l'acteur de la ligne considérée passe dans acteurCourant, et que le pop up s'affiche avec le changement convenable.

    c'est le problème depuis le début le pop up il s'est toujours affiché c'est juste qu'il s'affiche avec la valeur par défaut de acteurCourant et pas celle attendue.
    tu as essayé le code que je t'ai donné? ajoute un point d'arret sur l'action et regarde si la valeur de ton objet courant a bien été modifiée.

  9. #29
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    tu as essayé le code que je t'ai donné? ajoute un point d'arret sur l'action et regarde si la valeur de ton objet courant a bien été modifiée.
    J'ai mis des points d'arrêt dans la fonction selectionLigne qui est appelée par l'attribut action et un autre dans le setActeurCourant : nada

    breakpoints ajoutés aussi dans le jsp et apparemment on ne passe jamais par l'attribut action.

    le problème ne viendrait il pas des méthodes de mon bean dont j'ai donné le code ?

    action="tu recupére ici les nouvelles valeurs et mettre à jour les propriétés lié au modalPanel"
    c'est bien ça que j'aimerais qu'on creuse XD pour l'instant action appelle (ou n'appelle pas malheureusement ^^' ) une fonction assez simple dont j'ai indiqué le code plus haut pour affecter les valeurs à acteurCourant. ( j'ai essayé d'y rajouter un setActeurCourant((Acteur)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("item")); sans succès )

  10. #30
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    tu avais dit que après l'ajout de h:form, l'action fonctionnait,
    ajoute un voir s'il n'y a pas d'erreurs de conversion/validation, si ça ne marche toujours pas, donne le code que tu teste.
    le break point dans la jsp ne risque pas de marcher avec JSF, assure toi que tu es bien en mode debug, pour bien contrôler l'exécution de la requete JSF tu peux loguer les phases du cycle JSF, l'explication est dans la .

  11. #31
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu avais dit que après l'ajout de h:form, l'action fonctionnait,
    ajoute un voir s'il n'y a pas d'erreurs de conversion/validation, si ça ne marche toujours pas, donne le code que tu teste.
    le break point dans la jsp ne risque pas de marcher avec JSF, assure toi que tu es bien en mode debug, pour bien contrôler l'exécution de la requete JSF tu peux loguer les phases du cycle JSF, l'explication est dans la .
    non ce qui marchait après l'ajout de form, c'était l'affichage du modal panel, avant effectivement ca bloquait mais l'acteur n'a jamais été mis à jour.

    le plus simple serait peut être que vous testiez avec le code que j'ai donné pour vous faire une idée plus précise, il ne vous manque à la limite que la classe acteur qui ne comporte que les constructeurs getters et setters pour l'instant (pour nom et prenom )


    je vais voir ce que me donne h:messages

    edit : j'ai rajouté un h:messages juste après le datatable, ca ne donne rien

  12. #32
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    poste ton dernier code:

  13. #33
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    voilà, je remet le jsp et le contexte, j'ai du changer deux trois trucs en faisant des essais, et j'ajoute la classe utilisateur au cas où :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
     
    <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@ taglib prefix="rich" uri="http://richfaces.org/rich"%>
    <%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <link rel="stylesheet" type="text/css" href="styles.css">
    <title>TBC's vidéo club</title>
    </head>
    <body>
    <f:view>
    	<rich:tabPanel>
    		<rich:tab label="Acteurs">
     
    			<rich:simpleTogglePanel id="toggleajout" switchType="server"
    				label="Ajout d'un nouvel Acteur" height="90px">
    				<h:panelGrid columns="2">
    					<h:outputText value="Nom : " />
    					<rich:inplaceInput id="ajNom" value="#{contexte.nomNouveau}"
    						defaultLabel="Cliquer pour entrer le nom de l'acteur">
    					</rich:inplaceInput>
     
    					<h:outputText value="Prenom : " />
    					<rich:inplaceInput id="ajPrenom" value="#{contexte.prenomNouveau}"
    						defaultLabel="Cliquer pour entrer le Prenom de l'acteur">
    					</rich:inplaceInput>
    				</h:panelGrid>
    				<form>
    					<h:commandButton value="valider">
    						<a4j:support event="onClick" action="#{contexte.ajoutActeur}"
    							reRender="toggleajout,tableActeurs">
    						</a4j:support>
    					</h:commandButton>
    				</form>
    			</rich:simpleTogglePanel>
     
    			<rich:modalPanel id="modif" minHeight="200" minWidth="450"
    				height="200" width="500">
    				<f:facet name="header">
    					<h:outputText value="Modifier les informations de l'acteur" />
    				</f:facet>
    				<f:facet name="controls">
    				</f:facet>
    				<h:form>
    					<!-- si ya des inputs ou commandXXX-->
    					<a4j:outputPanel id="modalContent">
    						<h:outputText value="#{contexte.acteurCourant.nom}" />
    					</a4j:outputPanel>
    				</h:form>
    			</rich:modalPanel>
     
    			<form><rich:dataTable id="tableActeurs" reRender="modif"
    				onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
    				onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
    				width="100%" var="acteurs" value="#{contexte.listeActeurs}">
    				<a4j:support reRender="modalContent" event="onRowDblClick"
    					action="#{contexte.selectionLigne}"
    					oncomplete="javascript:Richfaces.showModalPanel('modif')">
    					<f:setPropertyActionListener value="#{acteurs}"
    						target="#{contexte.acteurCourant}" />
    				</a4j:support>
     
    				<f:facet name="header">
    					<rich:columnGroup>
    						<rich:column>
    							<h:outputText value="Nom" />
    						</rich:column>
    						<rich:column>
    							<h:outputText value="Prénom" />
    						</rich:column>
    					</rich:columnGroup>
    				</f:facet>
     
    				<rich:column>
    					<h:outputText value="#{acteurs.nom}" />
    				</rich:column>
    				<rich:column>
    					<h:outputText value="#{acteurs.prenom}" />
    				</rich:column>
    			</rich:dataTable></form>
    		</rich:tab>
    		<rich:tab label="Réalisateurs">
    		</rich:tab>
    		<rich:tab label="Vidéos">
    		</rich:tab>
    	</rich:tabPanel>
    </f:view>
    </body>
    </html>
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
     
    import java.util.ArrayList;
     
    import java.util.List;
     
     
     
    import javax.faces.context.FacesContext;
     
    import javax.faces.event.ActionEvent;
     
    import javax.faces.model.DataModel;
     
    import javax.faces.model.ListDataModel;
     
     
     
    public class ContexteUtilisateur {
     
     
     
    	/** Liste des �tudiants g�r�s par l'application. */
     
    	private List<Acteur> listeActeurs = null;
     
    	/** Etudiant courant s�lectionn�. */
     
    	private Acteur acteurCourant;
     
     
     
    	/** Liste des �tudiants g�r�s par l'application. */
     
    	private List<Realisateur> listeRealisateurs = null;
     
    	/** Etudiant courant s�lectionn�. */
     
    	private Realisateur realisateurCourant;
     
     
     
    	/** Liste des �tudiants g�r�s par l'application. */
     
    	private List<Video> listeVideos = null;
     
    	/** Etudiant courant s�lectionn�. */
     
    	private Video videoCourant;
     
     
     
    	private String nomNouveau;
     
    	private String prenomNouveau;
     
     
     
    	public void setPrenomNouveau(String prenomNouveau){this.prenomNouveau = prenomNouveau;}
     
    	public String getPrenomNouveau(){return prenomNouveau;}
     
    	public void setNomNouveau(String nomNouveau){this.nomNouveau = nomNouveau;}
     
    	public String getNomNouveau(){return nomNouveau;}
     
    	public List<Acteur> getListeActeurs(){return listeActeurs;}
     
    	public Acteur getActeurCourant(){return acteurCourant;}
     
    	public void setActeurCourant(Acteur act){acteurCourant=new Acteur(act);}
     
     
     
    	public ContexteUtilisateur()
     
    	{
     
    		listeActeurs = new ArrayList<Acteur> ();
     
    		listeRealisateurs = new ArrayList<Realisateur> ();
     
    		listeVideos = new ArrayList<Video> ();
     
     
     
    		listeActeurs.add(new Acteur("B","M"));
     
    		listeActeurs.add(new Acteur("C","T"));
     
    		listeActeurs.add(new Acteur("C","O"));
     
    		listeRealisateurs.add(new Realisateur("S","S"));
     
    		listeVideos.add(new Video("Le Mépris"));
     
     
     
    		acteurCourant=new Acteur("D","F");
     
    		nomNouveau="c";
     
    		prenomNouveau="p";
     
     
     
    	}
     
     
     
     
     
    	public void selectionLigne()
     
    	{
    		setActeurCourant((Acteur)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("item"));
     
    		System.out.println(acteurCourant);
     
    	}
     
     
     
    	public void selection (ActionEvent e)
     
    	{
     
    		setActeurCourant((Acteur)FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("item"));
     
    	}
     
     
     
    	public void ajoutActeur(ActionEvent e)
     
    	{
     
    		listeActeurs.add(new Acteur("nomNouveau","prenomNouveau"));
     
    	}
     
     
     
     
     
     
     
     
     
    }
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    public class Personne 
    {
    	private String nom;
    	private String prenom;
     
    	public void setNom(String nom){this.nom = new String(nom);}
    	public String getNom(){return nom;}
    	public void setPrenom(String prenom){this.prenom =  new String(prenom);}
    	public String getPrenom(){return prenom;}
     
    	public Personne(String nom, String prenom)
    	{
    		this.setNom(nom);
    		this.setPrenom(prenom);
    	}
     
     
    }
     
     
    public class Acteur extends Personne
    {
    	public Acteur(String nom, String prenom)
    	{
    		super(nom,prenom);
    	}
     
    	public Acteur(Acteur act)
    	{
    		super(act.getNom(),act.getPrenom());
    	}
     
    	public String toString()
    	{
    		return getNom()+getPrenom();
    	}
    }

  14. #34
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    là tu mélange deux méthodes pour récupérer la ligne courante de la dataTable, voilà quelques remarques:

    1- utilise un seul form pour la page, qui entoure le tabPanel, le modalPanel, tu peux le mettre après, juste avant la fermeture de la balise f:view/

    2- dans le setter tu crée une nouvelle instance de l'objet ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setActeurCourant(Acteur act){this.acteurCourant= act;}
    3- l'action dans le a4j:suport n'est pas utile, tu peux t'en passer, la valeur est transmise par le setPropertyActionListener. Si tu veux utiliser l'action enlève la setPropertyActionListener et l'objet à récupérer de la requete correspond à la variable de la dataTable, dans ton cas (acteurs).

  15. #35
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    excellent ! ca marche !

    merci, et avec tout ca je comprends un peu mieux comment fonctionnent ces échanges.

  16. #36
    Membre averti Avatar de argonath
    Homme Profil pro
    Ingénieur d'Etudes
    Inscrit en
    Juillet 2009
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'Etudes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 248
    Points : 381
    Points
    381
    Par défaut
    Bon je retire le tag résolu car en fait, si je remplace l'outputText par un inputText rien ne va plus ^^ message d'erreur "Target Unreachable".

    J'imagine qu'il va chercher mes setters pour prévoir les changements mais ils y sont bien, donc je m'interroge sur la différence de traitement entre inputText et outputText

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/11/2010, 12h00
  2. Réponses: 2
    Dernier message: 20/03/2009, 12h25
  3. [MySQL] problème de récupération des données d'une requête
    Par maniaco_jazz dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 19/02/2007, 12h12
  4. [MySQL] Problème de récupération des données dans une fonction
    Par highman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/10/2006, 20h04
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h27

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