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 :

affecter une valeur dans une EL


Sujet :

JSF Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut affecter une valeur dans une EL
    Bonjour,

    Je doit pour bien faire affecter une valeur dans une EL.

    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
    <rich:panelBarItem label="Contraintes">
    	<h:form>
    		<center>
    			<table border="0" cellpadding="5">
    				<tr>
    					<td><h:outputText value="Description : " /></td>
    					<td><h:inputTextarea id="scopeDesc" value="" cols="100" rows="10" /></td>
    				</tr>
    				<tr>
    					<td><h:inputHidden id="scopeLocation" value="#{txtDiverBean.currentTxtDiver.location=1}" /></td>
    					<td><center><h:commandButton value="Enregistrer" action="enregistrer" actionListener="#{txtDiverBean.saveTxtDiver}" /></center>
    					</td>
    				</tr>
    			</table>
    		</center>
    	</h:form>
    </rich:panelBarItem>
    Je m'explique:
    en fait, le code ci-dessus, je le répète plusieurs fois et utilise toujours le même bean. Et suivant ou je l'utilise, je doit l'affecter à l'une ou l'autre liste qui stock mon text. Ce que j'essaye de faire c'est tout simplement tester la valeur de mon txtDiverBean.currentTxtDiver.location dans un switch et suivant la valeur je fais appel à l'une ou l'autre méthode.

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Bonjour,

    Tu ne peux pas faire ça !
    Maintenant - si j'ai bien compris ce que tu cherches à faire - tu peux t'orienter vers le composant <f:param/>...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Merci de ta réponse rapide.

    Donc si j'ai bien compris si je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <td><h:inputHidden id="scopeLocation" >
         <f:param id="scopeLocation" name="#{txtDiverBean.currentTxtDiver.location}" value=1 />
    </h:inputHidden></td>
    ça marche?

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Le f:param est plutôt à mettre dans le commandButton, l'inputHidden étant dès lors inutile...
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    ha ok merci

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    Bon je viens de tester avec ce code :

    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
     
    <h:form>
    	<center>
    		<table border="0" cellpadding="5">
    			<tr>
    				<td><h:outputText value="Description : " /></td>
    				<td><h:inputTextarea id="scopeDesc" value="" cols="100" rows="10" /></td>
    			</tr>
    			<tr>
    				<td></td>
    				<td><center><h:commandButton value="Enregistrer" action="#{txtDiverBean.enregistrer}">
    					<f:param id="descPro" name="#{txtDiverBean.currentTxtDiver.location}" value="1" />
    				</h:commandButton></center>
    				</td>
    			</tr>
    		</table>
    	</center>
    </h:form>
    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
     
    public String enregistrer() {
    	switch (currentTxtDiver.getLocation()) {
     
    	case 1:
    		System.out.println(1);
    		dossier.addScope(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 11:
    		System.out.println(11);
    		dossier.addScope(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 12:
    		System.out.println(12);
    		dossier.addScope(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 13:
    		System.out.println(13);
    		dossier.addScope(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 2:
    		dossier.addActeur(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 3:
    		dossier.addProjetDesc(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 7:
    		dossier.addPhases(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	case 8:
    		dossier.addBudget(currentTxtDiver);
    		this.currentTxtDiver = new TxtDiver();
    		break;
    	default:
    		System.out.println("default");
    		break;
    	}
    	return "enregistrer";
    }
    Mais il passe toujours pas la clause default et jamais par la clause correspondant au paramètre.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    personne n'a une idée du pourquoi il passe toujours par la clause default?

  8. #8
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    ça va c'est bon j'ai finalement trouvé une solution

    mon commandeButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:commandButton value="Enregistrer"action="#{txtDiverBean.enregistrer}">
    	<f:param value="1" binding="#{txtDiverBean.parameter}" />
    </h:commandButton>
    ma classe
    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
     
    import javax.faces.component.UIParameter;
    ...
     
    public class TxtDiverBean {
    ...
            private UIParameter parameter;
    ...
            public String enregistrer() {
     
                   currentTxtDiver.setLocation(Integer.parseInt(parameter.getValue().toString()));
     
    		switch (currentTxtDiver.getLocation()) {
    		case 1:
    		case 11:
    		case 12:
    		case 13:
    			dossier.addScope(currentTxtDiver);
    			this.currentTxtDiver = new TxtDiver();
    			break;
    		case 2:
    			dossier.addActeur(currentTxtDiver);
    			this.currentTxtDiver = new TxtDiver();
    			break;
    		case 3:
    			dossier.addProjetDesc(currentTxtDiver);
    			this.currentTxtDiver = new TxtDiver();
    			break;
    		case 7:
    			dossier.addPhases(currentTxtDiver);
    			this.currentTxtDiver = new TxtDiver();
    			break;
    		case 8:
    			dossier.addBudget(currentTxtDiver);
    			this.currentTxtDiver = new TxtDiver();
    			break;
    		default:
    			System.out.println("default");
    			break;
    		}
    		return "enregistrer";
    	}
    }

  9. #9
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Une question m'interroge :

    Au lieu d'appeler toujours la même méthode mais avec des paramètres différents, pourquoi ne pas faire plusieurs méthodes différentes dans ton bean ? Par exemple addActeur, addPhase, etc.
    Ce serait plus facile à maintenir qu'un gros switch, non ?

    Edit: ah, je vois que tu as trouvé une solution, tant mieux
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  10. #10
    Membre averti
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Février 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Windev
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 46
    Par défaut
    effectivement c'est bête mais je n'y avait même pas pensé en fait .

    mais je me dit que vu le code exécuter dans le switch (casi rien) je me dit que c'est plus simple comme ca que de commencer a ajouter chaque méthode qui vont tout faire la même chose. enfin maintenant je ne programme pas depuis longtemps donc je ne sais pas c'est peut être mieux de faire toutes les méthode.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  3. affecter la valeur d'une requete dans une variable (VB6)
    Par josémaria dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/03/2007, 14h19
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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