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 :

Question pour le framework Primefaces


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut Question pour le framework Primefaces
    Bonjour,

    Je veux juste savoir une chose, est-ce qu'on peut mettre deux bouton qui des actionListeners pointant sur la même méthode dans un seule formulaire ?

    j'ai posé cette question car j'ai un problème dans le projet que je le travaille actuellement et qui comporte 2 boutons , si je clique sur un de ces boutons son évenement s’exécute, alors que l'autre perd sa capacité d’exécution

  2. #2
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Je ne vois pas l’intérêt mais bien sur que c'est possible

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    si l'autre perd sa "capacité" c'est qu'il attend peut-être que les données soient validées ... peut-être un "immediate=true" pour l'un et pour pour l'autre te provoque ce comportement.

    sans code source, on pourra pas bcp t'aider.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 23
    Par défaut
    Merci pour ta réponse, et désolé de ne pas préciser mon vrai problème.

    Je développe pour l'instant une interface de gestion de client avec primefaces/JSF qui affiche un dataTable complex (exemple : http://www.primefaces.org/showcase/u...bleComplex.jsf) avec la possiblité d'affiche un context menu pour chaque ligne de table (exemple : http://www.primefaces.org/showcase/u...ontextMenu.jsf),
    on trouve aussi dans l'interface un bouton qui permet d'afficher un 'dialog' contenant le formulaire d'ajout (les champs de saisie sont vides).

    le contextmenu (décrit précédemment) affiche seulement l'option 'Modifier' un client, ce dernier crée un 'dialog' qui comporte un formulaire de modification d'un client ( le même que celui de l'ajout avec la différence que les champs de saisie sont rempli par les infos de la ligne séléctionné dans le datatable).

    Voici la page xhtml.

    Code html : 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
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui" xml:lang="en" lang="en">
     
     
    <ui:composition template="../resources/template/template.xhtml">
    	<ui:define name="body">
    		<h:form id="form">
     
    		   <p:growl id="messages" showDetail="true" life="3000" />
     
    		   <p:contextMenu for="clientsTable">  
                           <p:menuitem value="Modifier" actionListener="#{contactController.doEditModifClient}" update="display"  icon="ui-icon-pencil" oncomplete="editClientDialog.show()" /> 
               </p:contextMenu>  
     
                <p:commandButton value="Ajouter un client" update="displayEdit" actionListener="#{contactController.doEditAjoutClient}" icon="ui-icon-disk" oncomplete="editClientDialog.show()" style="margin-bottom: 10px;"/>
     
    			<p:dataTable var="client" value="#{contactController.clients}"
    				rowKey="#{client.idClient}" paginator="true" rows="10"
    				selection="#{contactController.selectedClient}" selectionMode="single"
    				id="clientsTable">
     
    				<f:facet name="header">
    	                 List of Clients
    	              </f:facet>
     
    				<p:column headerText="Nom" sortBy="#{client.nom}"
    					filterBy="#{client.nom}" id="nom">
    	                  #{client.nom}
    	              </p:column>
     
    				<p:column headerText="Prenom" sortBy="#{client.prenom}"
    					filterBy="#{client.prenom}" id="prenom">
    	                  #{client.prenom}
    	              </p:column>
     
    				<p:column headerText="Adresse" sortBy="#{client.adresse}"
    					filterBy="#{client.adresse}" id="adresse">
    	                  #{client.adresse}
    	              </p:column>
     
    				<p:column headerText="Tel" sortBy="#{client.tel}"
    					filterBy="#{client.tel}" id="tel">
    	                  #{client.tel}
    	              </p:column>
     
    			</p:dataTable>
     
     
    			<p:dialog header="Ajout/Modification de client" widgetVar="editClientDialog" resizable="false"
    				width="300" showEffect="explode" hideEffect="explode" dynamic="true">
     
    				<h:panelGrid id="displayEdit" columns="2" cellpadding="4">
     
    					<h:outputText value="Nom:" />
    					<h:inputText value="#{contactController.client.nom}" id="nom" />
     
    					<h:outputText value="Prenom: " />
    					<h:inputText value="#{contactController.client.prenom}" id="prenom" />
     
    					<h:outputText value="Date de naissance: " />
    					<h:inputText value="#{contactController.client.dateNaissance}" id="dateNaissance" />
     
    					<h:outputText value="Adresse: " />
    					<h:inputText value="#{contactController.client.adresse}" id="adresse" />
     
    					<h:outputText value="Tel: " />
    					<h:inputText value="#{contactController.client.tel}" id="tel" />
     
    					<h:outputText value="E-Mail: " />
    					<h:inputText value="#{contactController.client.email}" id="email" />
    				</h:panelGrid>
                          <p:commandButton value="Valider" actionListener="#{contactController.validerClient}" update="messages" oncomplete="editClientDialog.hide()"/>				
    			</p:dialog>
     
     
    		</h:form>
    	</ui:define>
    </ui:composition>
     
    </html>

    et le managedBean associé :

    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
     
     
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
     
    import javax.ejb.EJB;
    import javax.faces.application.FacesMessage;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ViewScoped;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import javax.servlet.http.HttpSession;
     
    import xx.xx.xx.xx.Client;
     
    import org.hibernate.HibernateException;
    import org.primefaces.event.SelectEvent;
     
    @ManagedBean
    @ViewScoped
    public class ContactController {
     
    	private Integer idClient;
     
    	private Client client = new Client();
     
    	private Client selectedClient;
     
    	public ContactController() {
     
    	}
     
    	public void doEditAjoutClient(ActionEvent event) {
    		this.setClient(new Client());
    	}
     
    	public void doEditModifClient(ActionEvent event) {
    		this.setClient(selectedClient);
    	}
     
     
    	public Client getSelectedClient() {
    		return selectedClient;
    	}
     
    	public void setSelectedClient(Client selectedClient) {
    		this.selectedClient = selectedClient;
    	}
     
    	public List<Client> getClients() {
    		return new ArrayList<Client>(clientManager.getAllClients());
    	}
     
    	/*
    	 * public void setClients(List<Client> clients) { this.clients = clients; }
    	 */
     
    	public Client getClient() {
    		return client;
    	}
     
    	public void setClient(Client client) {
    		this.client = client;
    	}
     
    	public Integer getIdClient() {
    		return idClient;
    	}
     
    	public void setIdClient(Integer idClient) {
    		this.idClient = idClient;
    	}
     
    }
    On voit bien dans mon code, qu'il y a deux element avec un actionListener (le commandButton de l'ajout de client et le menuitem du menu contextuelle),

    lorsque je démarre mon application pour la première fois et je clique sur le bouton 'd'ajout de client' le dialog de formulaire d'ajout s'affiche correctement (les champs de saisie sont vide ce qui est normal ), mais lorsque je clique sur l'élement 'Modfier' du 'contextmenu' le dialog de formulaire s'affiche mais maintenant avec un formulaire vide (ce qui n'est pas normale),

    Pour le cas inverse , on clique sur l'element 'Modifier' pour la première fois , et le dialog s'affiche avec les infos du ligne datatable remplie dans le formulaire (cas normale), et lorsque je clique sur le bouton 'ajouter un client' le formulaire est toujours remplie (cas anormale).

    - c'est comme si cette application éxecute seulement le premier actionListener et réfuse d'executer les autres,

    Ma question est , est-ce qu'il y a un problème dans mon code qui m'interdit, d'afficher le formulaire vide lors de l'ajout et rempli lors de la modification ?

Discussions similaires

  1. BTS Info de Gestion passé aujourd'hui question pour SQL
    Par red210 dans le forum Décisions SGBD
    Réponses: 11
    Dernier message: 29/05/2005, 14h48
  2. [bochs] Question pour un kernel de base...
    Par hudson dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/02/2005, 12h07
  3. Petite question pour Backup
    Par chicken92000 dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2004, 16h10
  4. [MIB] Questions pour construire une mib
    Par fadoua dans le forum Développement
    Réponses: 4
    Dernier message: 11/03/2004, 10h47

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