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 :

InputText en readonly, perte de la valeur


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut InputText en readonly, perte de la valeur
    Bonjour,

    J'ai une page de saisie d'un bean dans lequel je peux saisir des dates. Pour celà j'ai utilisé un outil calendar qui marche nicquel.

    J'ai voulu mettre les champs en readonly de façon à ne pouvoir saisir les dates que via le calendar.

    Or , quand je ne met pas le read only, tout marche nicquel, quand je met le read only, je perd la valeur de l'input text.

    Je ne comprend pas car normalement ça devrait fonctionner ...
    Quelqu'un a t'il déjà eu le même cas?

    Merci d'avance,
    Cordialement,
    Séverine

  2. #2
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 42
    Par défaut
    Hello,

    Si tu parles du popupCalendar dans le composant t:inputDate, effectivement j'ai déjà eu le même problème.

    J'ai contourné le problème en mettant un checkbox permettant l'édition de la date, sinon la date est affichée en outputText.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <h:panelGroup>
    	<h:outputText value="Mode édition :"/>	
    	<h:selectBooleanCheckbox value="#{listeVoiture.rendModifiable}"/>
    </h:panelGroup>
     
    ........
     
    <h:outputText value="#{voiture.afficheDatePMEC}" rendered="#{!listeVoiture.rendModifiable}"/>
    <t:inputDate id="date" value="#{voiture.datePMEC}" readonly="false" popupCalendar="true" rendered="#{listeVoiture.rendModifiable}"/>
    où la méthode afficheDatePMEC retourne un String, alors que l'attribut datePMEC est bien une date.

    C'est bien le readonly="true" qui crée la perte d'information.

    C'est un problème que j'avais mis de côté et dont j'ai oublié de revenir dessus, si quelqu'un a trouvé comment faire bien marcher ce composant, je suis preneur aussi

  3. #3
    Membre éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Bonjour,

    je reviens sur ce sujet qui date un peu car moi aussi je suis embêté par ce problème de readlony.

    Et ce problème n'est pas uniquement présent avec le composant "calendar" comme indiqué sur ce sujet mais avec tous les composants JSF !

    C'est quand même bizarre que JSF ne récpuère pas la valeur d'un composant readonly, ca n'a fonctionnellement aucun sens !

    En tout cas je pensais que ce problème serait résolu avec JSF 1.2 mais pas du tout. Et c'est également le cas avec les <h:outputText> :
    Si on écrit cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="#{bean.value}">
    l'attribut "value" du bean ne récupérera jamais la valeur de l'outputText !

    Je relance ce sujet car quelqu'un a peut-être trouvé une parade pour permettre d'avoir un champ non modifiable et de pouvoir récupérer sa valeur dans un bean.

    D'avance merci

  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
    Euh, c'est normal qu'il ne récupère pas les "valeurs" de ton outputText.
    Le rendu HTML d'un outputText, c'est juste du texte "brut" (contenu éventuellement dans un span).

    Il n'y a donc aucune raison pour que la valeur de cet outputText soit retournée au bean lors d'une soumission d'un formulaire.
    De toutes façons, cela n'aurait pas de sens vu que #{bean.value}, n'a aucune raison d'être modifiée si sur ta page cette propriété n'est appelée que sur des outputText...

    Maintenant, si tu as un inputText, même en readonly, la valeur devrait être retournée au bean. Ce n'est pas le cas chez toi ?
    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 éclairé Avatar de danyboy85
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Ce n'est le cas chez personne j'ai l'impression...

  6. #6
    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
    En effet, je viens de vérifier, et c'est effectivement le cas.

    Un exemple :

    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
     
    public class FakeBean implements Serializable {
     
        private String one = "one";
     
        private String two = "two";
     
        public String getOne() {
            return one;
        }
     
        public void setOne(String one) {
            this.one = one;
        }
     
        public String getTwo() {
            return two;
        }
     
        public void setTwo(String two) {
            this.two = two;
        }
     
        public void doTest() {
            System.out.println("\nTEST:");
            System.out.println("One: " + one);
            System.out.println("Two: " + two);
        }
     
    }
    Dans mon code JSF :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <h:form>
        <h:panelGrid columns="2" cellspacing="5">
            <h:outputText value="One:"/>
            <h:inputText value="#{fakeBean.one}"/>
            <h:outputText value="Two:"/>
            <h:inputText value="#{fakeBean.two}" ondblclick="this.value='three';" readonly="true"/>
        </h:panelGrid>
        <h:commandButton action="#{fakeBean.doTest}" value="Test"/>
    </h:form>
    Quand je double clique sur mon inputText qui est readonly, que je soumets mon formulaire, la nouvelle valeur (three) de mon deuxième inputText n'est pas sauvée.
    Là, effectivement, il y a un problème !!
    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

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/08/2008, 10h54
  2. AS : boucle et perte de la valeur "i"
    Par vodasan dans le forum Flash
    Réponses: 3
    Dernier message: 11/04/2007, 16h45
  3. Perte de la valeur dans Page.User.Identity.Name
    Par Nosper dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/01/2007, 13h24
  4. Perte de la valeur du champ qd on tabule dessus
    Par pekka77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/09/2006, 08h30
  5. Jointure, perte systèmatique 1ere valeur...
    Par Pierrinot dans le forum Langage SQL
    Réponses: 6
    Dernier message: 04/08/2004, 16h21

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