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 :

paramètre entre xhtml et page jsf


Sujet :

JSF Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Par défaut paramètre entre xhtml et page jsf
    Bonjour,

    Je débute en jsf et donc en interface graphique via prime faces (xhtml).
    J'arrive à mes fins mais petit à petit et depuis quelques jours je sèche sur internet à la recherche d'une solution à mon interrogation.
    Comment passer un paramètre d'une page XHTML à une page JSF.
    Je m'explique :
    Ma page XHTML affiche une liste de cycles de formation (statut et millésime), un statut peut être créé, supprimé, fermé, ouvert, archivé...
    Lorsqu'on clique sur le cycle dont on veut voir le détail, une autre fenetre s'ouvre pour afficher des boutons que je veux griser en fonction du statut initial.
    Ex : cycle n°1 statut à C (créé), je fais détail et je voudrai griser les boutons fermer, archiver et ne laisser que ouvrir et supprimer.
    Si je change de cycle (ex cycle n°2) statut à F (fermé), je veux pouvoir griser alors les boutons supprimer, et archiver, et ne laisser accessible que les boutons ouvrir et archiver.
    Et ce suivant chaque règle de gestion définie.

    En clair, je passe par une méthode dans mon bean qui s'appelle affichage bouton et qui en fonction de mon statut doit permettre l'affichage à jour des bons boutons.

    voilà une copie du code, alors si l'un de vous se sent l'ame d'un bon samaritain....
    merci d'avance pour les tuyaux.

    gérerCycle.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
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    <ui:define name="content">
    		<h:form id="form">
     
    			<p:fieldset legend="Gestion des cycles">
    			<p:toolbar>
    			<p:toolbarGroup align="left" style="height:30px">
    			 <p:commandButton id="nouveauButton" oncomplete="nouveauCycle.show()" ajax="true"  styleClass="styleSagaieButton" icon="icone-button-nouveau" value="#{msg['btn.new']}"/>
    			 <p:commandButton id="exportExcel" ajax="false"  styleClass="styleSagaieButton" icon="icone-button-excel" value="Export Excel">
    			 <p:dataExporter type="xls" target="cycles"
    						fileName="ListeCycle" pageOnly="false" />
    			 </p:commandButton>
     
     
     
    			</p:toolbarGroup>
     
     
    			</p:toolbar>
     
     
     
    				<p:dataTable id="cycles" var="cycle" 
    					value="#{gererCycleMng.cycleList}" filteredValue="#{gererCycleMng.filtrecycleList}"
    					paginator="true" paginatorPosition="bottom" scrollHeight="500" scrollable="true"
    					paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
    					 rowsPerPageTemplate="10,50,100" 
    					currentPageReportTemplate=" ({startRecord}-{endRecord} sur {totalRecords})"
    					emptyMessage="Aucun cycle à afficher" 
    					rowIndexVar="rowIndex"
     
    					 >
    					 <p:column width="15" exportable="false" style="Background-color:#188DF3">
            #{rowIndex+1}
        </p:column>
    					<p:column exportable="false" width="20">
    						<p:commandButton id="selectButton" styleClass="iconDatatable" 
    						   	icon="ui-icon-search"  update=":detail:cycleDetail" action="#{gererCycleMng.affichageBouton()}"
    							oncomplete="detailCycle.show()" ajax="true">
    							<f:setPropertyActionListener value="#{cycle}"
    								target="#{gererCycleMng.cycleIHM}" />
    							<f:param name="statutCycleEnCours" value="{#cycle.statut}"/>
    						</p:commandButton>
    						<p:tooltip for="selectButton" value="Cliquez pour afficher le détail et modifier" showEffect="fade" hideEffect="fade" /> 
    					</p:column>
    					<p:column  headerText="#{msg['statut.libelle']}" width="125" sortBy="#{cycle.statut}"
    						filterBy="#{cycle.statut}">
    						<h:outputText value="#{cycle.statut}" />
    					</p:column>
     
    					<p:column  headerText="#{msg['millesime.libelle']}" width="125"
    						filterBy="#{cycle.millesimeDebut}" sortBy="#{cycle.millesimeDebut}" >
    						<h:outputText value="#{cycle.millesimeDebut}" />
    					</p:column>
     
     
     
     
     
     
    				</p:dataTable>
     
    			</p:fieldset>
     
    		</h:form>
     
     
     
    		<p:dialog widgetVar="nouveauCycle" modal="true" header="Nouveau Cycle" appendToBody="true"
    			closable="false" resizable="false">
    				<h:form id="cycle">
    				<p:panel id="detailCycle" >
    					<h:panelGrid columns="2" style="border-style:none" cellspacing="10" columnClasses="styleSagaieLibelle,styleSagaieComposant">
    						<p:outputLabel for="court" styleClass="labelSagaie" value="#{msg['statut.libelle']} en création" />
    						<h:inputText id="court" value="#{gererCycleMng.cycleIHM.statut}" disabled="true" ></h:inputText>
    						<p:outputLabel for="long" styleClass="labelSagaie" value="#{msg['millesime.libelle']} *" />
    						<h:inputText id="long" value="#{gererCycleMng.cycleIHM.millesimeDebut}" size="50"></h:inputText>
     
    					</h:panelGrid>
    				</p:panel>
    				<br/>
    						<h:panelGroup  style="display:block; text-align:right;">
    							<p:commandButton id="OkButton" styleClass="styleSagaieButton" icon="icone-button-valider" value="#{msg['btn.submit']}"  update="detailCycle,:form:cycles" disabled="false"   
                       			actionListener="#{gererCycleMng.creerCycleAnnuel()}"   
                        		oncomplete="nouveauCycle.hide()"/>
    							<p:commandButton id="AnnulerButton" oncomplete="nouveauCycle.hide()" actionListener="#{gererCycleMng.nettoyer()}" styleClass="styleSagaieButton" icon="icone-button-cancel" value="#{msg['btn.cancel']}" update="detailCycle "/>
    						</h:panelGroup>
     
     
     
     
    			</h:form>
     
    		</p:dialog>
     
     
    		<p:dialog id="bla" header="Gestion du cycle" widgetVar="detailCycle"  modal="true" appendToBody="true" height="300" width="620"
    				closable="false" resizable="false" >
                <h:form id="detail">
    				<p:panel id="cycleDetail" style="height:200px" >
    					<h:panelGrid columns="2" style="border-style:none" cellspacing="10" columnClasses="styleSagaieLibelle,styleSagaieComposant">
    						<h:outputLabel for="statut" value="#{msg['statut.libelle']}" />
    						<h:inputText id="statut" value="#{gererCycleMng.cycleIHM.statut}" disabled="true"></h:inputText>
     
    						<h:outputLabel for="millesime" value="#{msg['millesime.libelle']}" />
    						<h:inputText id="millesime"	value="#{gererCycleMng.cycleIHM.millesimeDebut}" disabled="true"></h:inputText>
     
    					</h:panelGrid>
    					<br/>
    					<h:outputLabel value="#{msg['choix.libelle']}" />
    					<br/>
    					<br/>
    					<h:panelGrid columns="5" style="border-style:none" cellspacing="10" >
     
    						<p:commandButton  id="DeleteStatut" value="#{msg['btn.delete']}" styleClass="styleSagaieButton" icon="icone-button-supprimer" actionListener="#{gererCycleMng.supprimerCycle()}" disabled="#{gererCycleMng.supprimer}" onclick="detailCycle.hide()" update=":form:cycles">
    						</p:commandButton>	
    						<p:commandButton  id="OuvrirStatut" value="#{msg['btn.ouvrir']}" styleClass="styleSagaieButton" icon="icone-button-ouvrir" actionListener="#{gererCycleMng.modifierCycle('O')}" disabled="#{gererCycleMng.ouvrir}" onclick="detailCycle.hide()" update=":form:cycles">
    						</p:commandButton>
    						<p:commandButton  id="FermerStatut" value="#{msg['btn.close']}" styleClass="styleSagaieButton" icon="icone-button-cancel" actionListener="#{gererCycleMng.modifierCycle('F')}" disabled="#{gererCycleMng.fermer}" onclick="detailCycle.hide()" update=":form:cycles">
    						</p:commandButton>
    						<p:commandButton  id="ArchiverStatut" value="#{msg['btn.archiver']}" styleClass="styleSagaieButton" icon="icone-button-archiver" actionListener="#{gererCycleMng.modifierCycle('A')}" disabled="#{gererCycleMng.archiver}" onclick="detailCycle.hide()" update=":form:cycles">
    						</p:commandButton>
    						<p:commandButton  id="DesarchiverStatut" value="#{msg['btn.desarchiver']}" styleClass="styleSagaieButton" icon="icone-button-desarchiver" actionListener="#{gererCycleMng.modifierCycle('D')}" disabled="#{gererCycleMng.desarchiver}" onclick="detailCycle.hide()" update=":form:cycles">
    						</p:commandButton>		
    					</h:panelGrid>
    				</p:panel>
    				<br/>
    				<h:panelGroup  style="display:block; text-align:right;">
    						<br/>
    						<p:commandButton  id="Annuler" value="#{msg['btn.cancel']}" styleClass="styleSagaieButton" icon="icone-button-cancel" actionListener="#{gererCycleMng.nettoyer()}" oncomplete="detailCycle.hide();">
    						</p:commandButton>
     
    				</h:panelGroup>
    			</h:form>
     
    		</p:dialog>
    	</ui:define>
    </ui:composition>
    et GererCycleMng :
    entre autre :

    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
    	public String getStatutParam (FacesContext fc){
    		Map<String,String> param = fc.getExternalContext().getRequestParameterMap();
    		return param.get("monParamStatut");
    	}
     
    	public void affichageBouton(){
     
    		FacesContext fc = FacesContext.getCurrentInstance();
    		this.monParamStatut = getStatutParam(fc);
     
    		//switch (cycleIHM.getStatut()) {
    		switch (monParamStatut)
    		{
    		case "C":
    			// le cycle annuel existe déjà en base de données et que son statut a pour valeur "C",
    			// l'aiguillage doit être choisi entre les valeurs "S" ou "O" ;
    			supprimer = false;
    			ouvrir = false;
    			fermer = true;
    			archiver= true;
    			desarchiver = true;
    			break;
    		case "O":
    			// le cycle annuel existe déjà en base de données et que son statut a pour valeur "O",
    			// l'aiguillage doit être choisi entre les valeurs "S" ou "F" ;
    			supprimer = false;
    			ouvrir = true;
    			fermer = false;
    			archiver= true;
    			desarchiver = true;
    			break;
    		case "F":
    			// le cycle annuel existe déjà en base de données et que son statut a pour valeur "F",
    			// l'aiguillage doit être choisi entre les valeurs "O" ou "A" ;
    			supprimer = true;
    			ouvrir = false;
    			fermer = true;
    			archiver= false;
    			desarchiver = true;
    			break;
    		case "A":
    			// le cycle annuel existe déjà en base de données et que son statut a pour valeur "A",
    			// l'aiguillage ne peut avoir que la valeur "D".
    			supprimer = true;
    			ouvrir = true;
    			fermer = true;
    			archiver= true;
    			desarchiver = false;
    			break;
    		case "D":
    			//le cycle est désarchivé
    			supprimer = true;
    			ouvrir = true;
    			fermer = false;
    			archiver= false;
    			desarchiver = true;
    			break;
    		default:
    			break;
    		}
    }

    merci merci merci

  2. #2
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    alors je ne sais pas bien si c'est ton problème mais t'aimerais envoyer un paramètre nulle part je ne vois le paramètres
    monParamStatut
    je crois que cela doit être
    statutCycleEnCours
    .

    Ensuite dans ton switch tu utilises des String alors je supposes que t'as le JDK 7..

    pour le reste je ne vois pas de problème tu as bien mis l'update.
    sinon effectue un débug sur la fonction .
    Je te conseilles aussi de ne pas utiliser les parenthèses dans tes xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="#{gererCycleMng.affichageBouton<s>()</s>}

Discussions similaires

  1. Passage de paramètres entre pages php
    Par Doudy dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2007, 23h20
  2. Passage de paramètres entre pages JSF
    Par Niniz dans le forum JSF
    Réponses: 6
    Dernier message: 17/07/2007, 14h05
  3. [HTML] Passage de paramètres entre 2 pages HTML
    Par marcandre dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 23/03/2007, 12h14
  4. Réponses: 1
    Dernier message: 29/05/2006, 10h04
  5. Passage de paramètres entre page
    Par philou8 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 18h54

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