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 :

Remise à null des champs d'un dialog après exécution méthode


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut Remise à null des champs d'un dialog après exécution méthode
    Bonjour,

    J'ai une dataTable qui affiche la liste des sociétés en base de données.
    J'ai un commandButton qui affiche un dialog pour insérer une nouvelle société en base de données et ensuite réafficher la dataTable.

    Tout fonctionne très bien, sauf que si je clique une 2ème fois sur le bouton pour ajouter une autre société, les champs dans mon dialog contiennent encore les valeurs de la première société que j'ai ajouté.

    Il doit y avoir un problème de rafraichissement mais n'étant pas encore très à l'aise dans le domaine, je suis un peu bloqué....

    Qqun pourrait-il m'aider svp ?

    De plus je me posais la question suivante :
    Est-ce qu'il est possible et judicieux d'avoir un formulaire lui-même inclus dans un autre formulaire ?
    Par exemple, si j'avais créé un autre formulaire pour intégrer le dialogue de création d'une société, Est-ce que ça aurait été bien ou au contraire à éviter ?
    Voici mon fichier xhtml:
    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
    <?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">
    
    <ui:composition template="../../../secured/modele/template.xhtml"
    	xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:c="http://java.sun.com/jsp/jstl/core">
    	<ui:define name="contenu">
    		<h:form id="gestionSocietes">
    			<p:growl id="messages" life="2000" />
    			
    			<p:dialog header="#{msg['ConfirmerLaSuppression']}" widgetVar="confDeleteDlg" resizable="false" id="studentDlg"
                                showEffect="fade" hideEffect="fade" >
                	<p:outputLabel value="#{msg['EtesVouSurDeVouloirSupprimerCetteSociete']}" />
                    <div align="center">
    	                <h:panelGrid id="display" columns="2" cellpadding="10">
    	                	<p:commandButton id="deleteButton" action="#{gestionSocietes.supprimerSociete}" oncomplete="PF('confDeleteDlg').hide()" 
    	                            update=":formulaire:gestionSocietes:societes" value="#{msg['Oui']}" />
    	                	<p:commandButton id="cancelButton" onclick="PF('confDeleteDlg').hide()" value="#{msg['Non']}"/>
    	                </h:panelGrid>
                    </div>
                </p:dialog>
    			
    			<p:contextMenu for=":formulaire:gestionSocietes:societes">
    				<p:menuitem value="Supprimer" onclick="PF('confDeleteDlg').show()" update="messages" />
    			</p:contextMenu>
    			
    			<h2>
    				<h:outputText value="#{msg['GestionDesSocietes']}" />
    			</h2>
    			
    			<p:dataTable 	id="societes"
    							value="#{gestionSocietes.listSocietes}" 
    							var="societe" widgetVar="UserTable" filteredValue=""
    							emptyMessage="#{msg['AucuneSocieteAAfficher']}" 
    							selection="#{gestionSocietes.selectedSociete}" 
    							selectionMode="single"  editable="false" editmode="row"
    							rowKey="#{societe.id}" paginator="true" paginatorPosition="bottom"  
    							rows="10" style="margin-bottom:10px" 
    							paginatorTemplate=" {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    							rowsPerPageTemplate="5,10,15">
    							
    				<f:facet name="header">  
                		<p:outputPanel>
                			<div align="left">  
                    			<p:commandButton onclick="PF('societeAjout').show()" id="ajoutUserBtn" icon="ui-icon-action-ajouter" title="#{msg['AjouterUneSociete']}" />                		
                                     </div>
                		</p:outputPanel>  
            		</f:facet>
    							
    				<p:column style="width:5%">
    					<f:facet name="header">
    	            		#
    	          		</f:facet>
    	         		 #{societe.id}
    	       		</p:column>
    				
    				<p:column style="width:20%">
    					<f:facet name="header">
    	            		#{msg['Abrege']}
    	          		</f:facet>
    	          		#{societe.abrege}
    	        	</p:column>
    				
    				<p:column style="width:30%">
    					<f:facet name="header">
    	            		#{msg['Nom']}
    	          		</f:facet>
    	          		#{societe.nom}
    	        	</p:column>
    	        	
    	        	<p:column style="width:45%">
    					<f:facet name="header">
    	            		#{msg['Description']}
    	          		</f:facet>
    	          		#{societe.description}
    	        	</p:column>
    				
    			</p:dataTable>
    		
                <p:dialog header="#{msg['NouvelleSociete']}" widgetVar="societeAjout" resizable="false" id="societeAjout" focus="abrege" >
    	            <h:panelGrid id="ajoutDial" width="500" columns="2" style="margin:0 auto;">
    					<h:outputLabel for="abrege" value="#{msg['Abrege']} (10) : " styleClass="mandatory" />
    					<p:inputText id="abrege" value="#{gestionSocietes.abrege}" size="50" maxlength="10" 
    							required="true" requiredMessage="#{msg['AbregeEstObligatoire']}">
    						 <f:validateLength minimum="2" />
    						 <p:ajax update="msgAbrege" event="keyup" />
    					</p:inputText>
    					<p:outputLabel />
    					<p:message for="abrege" id="msgAbrege" />
    					
    					<h:outputLabel for="nom" value="#{msg['Nom']} (50) : " styleClass="mandatory" />
    					<p:inputText id="nom" value="#{gestionSocietes.nom}" required="true" size="50" maxlength="50" />
    					<p:outputLabel />
    					<p:message for="nom" display="icon" />
    					
    					<h:outputLabel for="description" value="#{msg['Description']} (2'000) : " />
    					<p:inputTextarea id="description" value="#{gestionSocietes.description}" rows="5" cols="50" counter="countDesc" maxlength="2000" counterTemplate="{0} #{msg['Restants']}" autoResize="false" styleClass="unresizable" />
    					<h:outputText />
    					<h:outputText id="countDesc" />
    					
    					<p:commandButton action="#{gestionSocietes.ajouterSociete}" update=":formulaire:gestionSocietes" value="#{msg['Ajouter']}" icon="ui-icon-check"
    						style="margin:15px" oncomplete="PF('societeAjout').hide()"/>
    					<p:commandButton value="#{msg['Annuler']}" icon="ui-icon-check"
    						style="margin:15px" oncomplete="PF('societeAjout').hide()"/>
    			      	<!-- <p:message for="name" id="msg_name"/> -->
    				</h:panelGrid>
     			</p:dialog> 		
                     </h:form>
    	</ui:define>
    </ui:composition>
    Et mon BackingBean du formulaire :
    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
     
    @ManagedBean(name = "gestionSocietes")
    @RequestScoped
    public class GestionSocietesBean {
     
    	private List<Societe> listSocietes;
    	private Societe selectedSociete;
     
    	private String abrege;
    	private String nom;
    	private String description;
     
    	@EJB
    	private SocieteService m_societeService;
     
    	/**
             * Default Constructor
             */
    	public GestionSocietesBean() {
    	}
     
    	public SocietesDataTableModel getListSocietes() {
    		listSocietes = new ArrayList<>();
     
    		listSocietes = m_societeService.getSocieteList();
     
    		return new SocietesDataTableModel(listSocietes);
    	}
     
    	public Societe getSelectedSociete() {
    		return this.selectedSociete;
    	}
     
    	public void setSelectedSociete(Societe selectedSociete) {
    		this.selectedSociete = selectedSociete;
    	}
     
    	public void modifierSociete() {
    		// TODO
    	}
     
    	public void supprimerSociete() {
    		m_societeService.deleteSociete(getSelectedSociete());
    	}
     
    	public String getAbrege() {
    		return abrege;
    	}
     
    	public void setAbrege(String abrege) {
    		this.abrege = abrege;
    	}
     
    	public String getNom() {
    		return nom;
    	}
     
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
     
    	public String getDescription() {
    		return description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	public void ajouterSociete() {
    		Societe societe = new Societe();
    		societe.setAbrege(this.abrege);
    		societe.setNom(this.nom);
    		societe.setDescription(this.description);
     
    		m_societeService.createSociete(societe);
    	}	
    }
    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    mettre juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void ajouterSociete() {
    		Societe societe = new Societe();
    		societe.setAbrege(this.abrege);
    		societe.setNom(this.nom);
    		societe.setDescription(this.description);
     
    		m_societeService.createSociete(societe);
         this.abrege="";
         this.nom="";
         this.description="";
    	}
    eric

  3. #3
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    salut,

    j'avais déjà essayé ça mais ça ne marche pas.

    A noter que la mise à jour de la table est ajaxisée

  4. #4
    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
    Tu n'as pas demandé de recharger la boite de dialogue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton update="societeAjout" onclick="PF('societeAjout').show()" id="ajoutUserBtn" icon="ui-icon-action-ajouter" title="#{msg['AjouterUneSociete']}"/>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    100
    Inscrit en
    Juillet 2007
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : 100

    Informations forums :
    Inscription : Juillet 2007
    Messages : 585
    Par défaut
    Si je fais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p:commandButton update="societeAjout" onclick="PF('societeAjout').show()" id="ajoutUserBtn" icon="ui-icon-action-ajouter" title="#{msg['AjouterUneSociete']}"/>
    le dialogue s'ouvre et se referme directement

  6. #6
    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
    Je n'ai pas assez regardé le code de ton bouton, mets plutôt "oncomplete" (et pas onclick)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/03/2011, 07h41
  2. Requete avec des champs null
    Par passie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/06/2006, 15h11
  3. Réponses: 3
    Dernier message: 28/02/2006, 17h52
  4. somme des champs null
    Par s.rais dans le forum Access
    Réponses: 4
    Dernier message: 09/02/2006, 09h05
  5. Réponses: 4
    Dernier message: 16/09/2005, 14h27

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