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 :

[jsf] valeur inputText non mise à jour


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut [jsf] valeur inputText non mise à jour
    Bonjour,
    j'ai un souci de mise à jour de mes inputText.
    lorsque je choisie une valeur dans mon selectOneMenu je recherche l'objet lier et je l'affiche afin que les valeur puisse etre changé.Cependant les valeur ne change pas.

    ma page jSF
    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
     
    <rich:panel  header="Gate 1" style="margin-left:75px;background-color:#d0d0d0;width:600px;" >
    				<h:form id="BesoinForm">	
    					<h:outputLabel><h:outputText value="Selection du Besoin :"/></h:outputLabel>
    					<h:selectOneMenu id="besoin" value="#{Gate1Bean.besoin.id}"
    					 valueChangeListener="#{Gate1Bean.besoinByID}">
    						<f:selectItems value="#{Gate1Bean.listBesoin}" />
    						<a4j:support event="onchange" reRender="value" />
    					</h:selectOneMenu>
    					<rich:spacer height="30px" />
     
    					<rich:panel id="value"  style="background-color:#c0c0c0;">
    						<h:panelGrid columns="2" >
     
    							<h:outputLabel><h:outputText value="Date RAO (dd/MM/yyyy) :"/></h:outputLabel>
    							<rich:calendar id="dateRAO" datePattern="dd/MM/yyyy" value="#{Gate1Bean.besoin.daterao}" />
     
    							<h:outputLabel><h:outputText value="Date Remise offre (dd/MM/yyyy) :"/></h:outputLabel>
    							<rich:calendar id="dateURM" datePattern="dd/MM/yyyy" value="#{Gate1Bean.besoin.dateurm}" />
     
    							<h:outputLabel><h:outputText value="Cout cible :"/></h:outputLabel>
    							<h:inputText id="coutCible" value="#{Gate1Bean.besoin.coutCible}" />
     
    							<h:outputLabel><h:outputText value="Cout TAS :"/></h:outputLabel>
    							<h:inputText id="coutTAS" value="#{Gate1Bean.besoin.coutTAS}" />
     
    							<h:outputLabel><h:outputText value="Nombre de jours TAS:"/></h:outputLabel>
    							<h:inputText id="nbJTAS" value="#{Gate1Bean.besoin.nbjoursTAS}" />
     
    							<h:outputLabel><h:outputText value="Fichier :"/></h:outputLabel>
    							<h:commandButton action="#{Gate1Bean.upload}" value="ajouter" />
     
    					</h:panelGrid>
    ma 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
     
    public class Gate1Bean {
    	Besoin unBesoin = new Besoin();
     
    	public Besoin getBesoin()
    	{
    		return unBesoin;
    	}
     
    	public void setBesoin(Besoin unBesoin)
    	{
    		this.unBesoin = unBesoin;
    	}
     
     
    	public void besoinByID(ValueChangeEvent event)
    	{
    		int userId = (Integer) event.getNewValue();
    		if(userId!=0)
    			unBesoin = BesoinDAO.findById(userId);
    		else
    			unBesoin = new Besoin();
    	}
     
    	public List<SelectItem> getListBesoin(){
    		Utilisateur unUser= new Utilisateur();
    		ArrayList<SelectItem> listBesoin= new ArrayList<SelectItem>();
    		try{
    			ConnexionBean userInfo = (ConnexionBean) FacesContext.getCurrentInstance().getExternalContext()
    									.getSessionMap().get("connexionBean");
    			unUser = userInfo.getUtilisateur();
    			Iterator<Besoin> it = BesoinDAO.findByUser(unUser).iterator();
    			listBesoin.add(new SelectItem(0,""));
    			while (it.hasNext()){
    				Besoin unBesoin = it.next();
    				listBesoin.add(new SelectItem(unBesoin.getId(),unBesoin.getLibelle()));
    			}
    		}
    		catch(Exception e){}
    		return listBesoin;
    	}
    la valeur et bien chargé dans l'objet mais il y a une sorte de maj qui ce fait et la valeur se remet a 0
    pouvais vous m'aider?

  2. #2
    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 bean est dans quel scope?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    le scope est en request.

  4. #4
    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 Pirion Voir le message
    le scope est en request.
    le scope request, le bean est réinitilisé à chaque requête, mets le bean en sesion ou ajoute a4j:keepAlive.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    je l'ai mis en session mais mon problème est toujours le même j'ai toujours les valeurs 0 qui s'affiche.

  6. #6
    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
    quelle est la valeur qui reste à 0 ?

    besoin.id n'est pas afficher.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    dans mon bean les valeurs coutCible, coutTAS, nbjoursTAS sont bonne a la sortie besoinByID. mais apres elle s'affiche o dans le inputText coutCible, coutTAS et nbjoursTAS.

    j'ai essayé en mettant des outpuText et la, les bonnes valeurs s'affichent
    alors pourquoi pas dans le input?

  8. #8
    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 Pirion Voir le message
    dans mon bean les valeurs coutCible, coutTAS, nbjoursTAS sont bonne a la sortie besoinByID. mais apres elle s'affiche o dans le inputText coutCible, coutTAS et nbjoursTAS.

    j'ai essayé en mettant des outpuText et la, les bonnes valeurs s'affichent
    alors pourquoi pas dans le input?
    Il n'y a pas de différence entre outputText et inputText au niveau du rafraichissement et l'affichage de ces composants, regarde plutôt ce qui se passe dans ta fonction besoinByID.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Si il n'ya pas de difference pourquoi dans outputText sa fonctionne et pas dans une inputText?

    à la sorte de besoinByID j'ai bien les valeur voulu. J'ai fait un affichage est les bonnes valeurs sont recupérées.

  10. #10
    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 Pirion Voir le message
    Si il n'ya pas de difference pourquoi dans outputText sa fonctionne et pas dans une inputText?

    à la sorte de besoinByID j'ai bien les valeur voulu. J'ai fait un affichage est les bonne valeur son recupéré.
    Ils sont de quels types?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    les 3 valeurs sont de type integer

  12. #12
    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
    ajoutes un voir s'il nya pas d"erreurs de conversions, sinon essaye d'ajouter
    .
    Tu peux aussi loguer les phases JSF pour voir si le cycle s'est déroulé complétement.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    j'ai essayé le <h:messages/> et le <f:convertNumber/> toujours pareil

    comment puis je loguer les phases JSF ?

  14. #14
    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
    Pour loguer les phases JSF, un petit coup d'œil sur la .

    Vérifie bien ton code, la valeur se modifie bien? ce n'est pas normal que l'inputText ne se met pas à jour et l'outputText se met à jour, tu ajoutes bien les bons id dans le reRender?
    mets les deux et avec leurs ids dans le reRender et regarde ce qui se passe.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    beforePhase RESTORE_VIEW 1
    afterPhase RESTORE_VIEW 1
    beforePhase APPLY_REQUEST_VALUES 2
    afterPhase APPLY_REQUEST_VALUES 2
    beforePhase PROCESS_VALIDATIONS 3
    Hibernate: select besoin0_.ID as ID2_, besoin0_.LIBELLE as LIBELLE2_, besoin0_.FI_FE_AT as FI3_2_, besoin0_.DATERAO as DATERAO2_, besoin0_.COUTCIBLE as COUTCIBLE2_, besoin0_.NBJOURTAS as NBJOURTAS2_, besoin0_.DATEURM as DATEURM2_, besoin0_.COUTTAS as COUTTAS2_, besoin0_.COMMENTAIRE as COMMENTA9_2_, besoin0_.AFFAIRE_IDAFFAIRE as AFFAIRE10_2_, besoin0_.SOW_NUMSOW as SOW11_2_, besoin0_.DPI_NUMDPI as DPI12_2_ from SPA2.BESOIN besoin0_ inner join SPA2.SUIVRE utilisateu1_ on besoin0_.ID=utilisateu1_.BESOIN_ID inner join SPA2.UTILISATEUR utilisateu2_ on utilisateu1_.UTILISATEUR_IDUTILISATEUR=utilisateu2_.IDUTILISATEUR where utilisateu2_.IDUTILISATEUR=?
    afterPhase PROCESS_VALIDATIONS 3
    beforePhase UPDATE_MODEL_VALUES 4
    afterPhase UPDATE_MODEL_VALUES 4
    beforePhase INVOKE_APPLICATION 5
    afterPhase INVOKE_APPLICATION 5
    beforePhase RENDER_RESPONSE 6
    afterPhase RENDER_RESPONSE 6

    est ce normale que ma requete s'execute dans la phase PROCESS_VALIDATIONS?

    Et là le input et le output prennent la même valeur c'est a dire 0.

  16. #16
    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
    ouii normal,

    Le code hibernate dans un getter n'est pas une bonne chose, le getter est appelé plusieurs fois avant le rendu de la page. initialise la liste ailleurs dans une méthode, appelé par exemple dans le constructeur ou suite à une action.

    tu peux reprendre le code, et utiliser le actionListener au lieu du valueChangeListner.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Merci beaucoup maintenant cela fonctionne
    j'ai modifier ma page Jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:selectOneMenu id="besoin" value="#{Gate1Bean.besoin.id}">
    						<f:selectItems value="#{Gate1Bean.listBesoin}" />
    						<a4j:support event="onchange" actionListener="#{Gate1Bean.besoinByID}" reRender="nbJTASoutput,nbJTASinput" />
    					</h:selectOneMenu>
    et un peut ma fonction besoinByID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void besoinByID(ActionEvent event)
    	{
    			Besoin besoinRecup = BesoinDAO.findById(unBesoin.getId());
    		if(besoinRecup.getId()!=null)
    			unBesoin = besoinRecup;
    		else
    			unBesoin = new Besoin();
    	}
    et cela fonctionne parfaitement.

    Encore Merci pour le temps que tu m'a accordé!!

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

Discussions similaires

  1. GtkEntry et valeur get_text non mise à jour
    Par ktulu77 dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 10/04/2009, 13h43
  2. Réponses: 7
    Dernier message: 15/01/2007, 18h18
  3. Valeur zone avant mise à jour
    Par gbrunelle dans le forum Access
    Réponses: 4
    Dernier message: 16/12/2006, 14h41
  4. Vue non mise à jour après modification d'une table
    Par cybernet35 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/01/2006, 13h54
  5. Valeur à la dernière mise à jour ?
    Par szdavid dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/09/2005, 08h40

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