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] Réinitialisation d'une page


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Points : 16
    Points
    16
    Par défaut [JSF] Réinitialisation d'une page
    Bonjour à tous !

    Mon problème est le suivant. Lors de la validation d'un formulaire, après persistance en base, je désactive tous les champs du formulaire (lecture seule).
    Lorsque je recharge la page (en lançant un nouvel explorateur par exemple) elle s'affiche dans le mode lecture seule (post validation du formulaire). Les champs sont bien vides mais non accessibles.

    Comment faire pour réinitialiser les champs dans ce cas précis ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    J'ai pas bien compris ton probléme. tu désactive tes champs comment (avec quelle code ? tu passe les tags jsf en ReadOnly=true ? tu fais ça en javascript ? ).

    Lorsque je recharge la page (en lançant un nouvel explorateur par exemple)
    C'est à dire en ouvrant une nouvelle session ?

    Reinitialiser = les rendre accessible c'est bien ça ?

    Tes champs sont des <h:inputText> ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Points : 16
    Points
    16
    Par défaut
    Pardon pour le manque de précision, je vais tenter d'être plus clair.

    Tout d'abord j'utilise Java Studio Creator pour la création de mes pages JSF.

    1 - Mon formulaire permet la saisie de plusieurs informations (cf. code suivant).

    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
     
    <ui:form binding="#{create.form1}" id="form1">
                            <h:panelGrid binding="#{create.page}" cellpadding="10" id="page" style="width: 100%">
                                <h:panelGrid binding="#{create.withMenuGridPanel}" columns="2" id="withMenuGridPanel" style="width: 100%; height: 100%;">
                                    <div>
                                        <jsp:directive.include file="menu.jspf"/>
                                    </div>
                                    <h:panelGrid binding="#{create.allFormGridPanel}" id="allFormGridPanel" style="left: 20%; right: 20%; top: 0px; position: relative; width: 60%">
                                        <h:panelGrid binding="#{create.problem_information}" columns="2" id="problem_information" style="right: 20%; width: 60%">
                                            <ui:label binding="#{create.managerLabel}" id="managerLabel" text="Responsable" toolTip="Responsable du suivi de la correction"/>
                                            <ui:dropDown binding="#{create.managerDropDown}" converter="#{create.managerDropDownConverter}" id="managerDropDown"
                                            items="#{create.res_resourceDataProvider.options['res_resource.RES_ID,res_resource.RES_NUMBER']}" required="true" selected="#{ProductionProblem.managerId}"/>
                                            <ui:label binding="#{create.resolverLabel}" id="resolverLabel" text="Correcteur" toolTip="Intervenant ME associée à la correction"/>
                                            <ui:dropDown binding="#{create.resolverDropDown}" converter="#{create.resolverDropDownConverter}" id="resolverDropDown"
                                            items="#{create.res_resourceDataProvider.options['res_resource.RES_ID,res_resource.RES_NUMBER']}" required="true"
                                            selected="#{ProductionProblem.ressourceId}" valueChangeListener="#{create.resolverDropDown_processValueChange}"/>
                                            <ui:label binding="#{create.numberLabel}" for="numberTextField" id="numberLabel" text="Numéro" toolTip="Numéro d'identification"/>
                                            <ui:textField binding="#{create.numberTextField}" id="numberTextField" required="true" text="#{ProductionProblem.number}"/>
                                            <ui:label binding="#{create.synoLabel}" for="synoTextField" id="synoLabel" text="Synopsis" toolTip="Résumé"/>
                                            <ui:textField binding="#{create.synoTextField}" id="synoTextField" required="true" text="#{ProductionProblem.synopsis}"/>
                                            <ui:label binding="#{create.detectionDateLabel}" for="detectionCalendar" id="detectionDateLabel" text="Date de détection"/>
                                            <ui:calendar binding="#{create.detectionCalendar}" columns="10" dateFormatPattern="dd/MM/yyyy" id="detectionCalendar"
                                            maxDate="#{ApplicationBean1.maxDate}" minDate="#{ApplicationBean1.minDate}" required="true"
                                            selectedDate="#{ProductionProblem.detectionDate}" validator="#{create.detectionCalendar_validate}"/>
                                            <ui:label binding="#{create.resolutionDateLabel}" for="resolutionCalendar" id="resolutionDateLabel" text="Date de résolution"/>
                                            <ui:calendar binding="#{create.resolutionCalendar}" columns="10" id="resolutionCalendar" selectedDate="#{ProductionProblem.resolutionDate}"/>
                                            <ui:label binding="#{create.descriptionLabel}" for="descriptionTextArea" id="descriptionLabel" text="Description"/>
                                            <ui:textArea binding="#{create.descriptionTextArea}" id="descriptionTextArea" required="true" rows="10" text="#{ProductionProblem.description}"/>
                                            <ui:label binding="#{create.problemTypeLabel}" for="problemtypeDropDown" id="problemTypeLabel" text="Type de problème"/>
                                            <ui:dropDown binding="#{create.problemtypeDropDown}" converter="#{create.problemtypeDropDownConverter}"
                                            id="problemtypeDropDown"
                                            items="#{create.ppt_production_problem_typeDataProvider.options['ppt_production_problem_type.PPT_ID,ppt_production_problem_type.PPT_NAME']}"
                                            required="true" selected="#{ProductionProblem.problemType}"/>
                                            <ui:label binding="#{create.applicationLabel}" for="applicationDropDown" id="applicationLabel" text="Application"/>
                                            <ui:dropDown binding="#{create.applicationDropDown}" converter="#{create.applicationDropDownConverter}"
                                            id="applicationDropDown"
                                            items="#{create.app_applicationDataProvider.options['app_application.APP_ID,app_application.APP_NAME']}"
                                            required="true" selected="#{ProductionProblem.applicationId}"/>
                                            <ui:label binding="#{create.releaseLabel}" for="releaseDropDown" id="releaseLabel" text="Release"/>
                                            <ui:dropDown binding="#{create.releaseDropDown}" converter="#{create.releaseDropDownConverter}" id="releaseDropDown"
                                            items="#{create.rel_releaseDataProvider.options['rel_release.REL_ID,rel_release.REL_NAME']}" required="true"
                                            selected="#{ProductionProblem.releaseId}" valueChangeListener="#{create.releaseDropDown_processValueChange}"/>
                                        </h:panelGrid>
                                        <ui:button action="#{create.createButton_action}" binding="#{create.createButton}" id="createButton"
                                        style="left: 20%; right: 20%; position: relative; width: 47px" text="Créer"/>
                                    </h:panelGrid>
                                </h:panelGrid>
                                <ui:messageGroup binding="#{create.messageGroup1}" id="messageGroup1"/>
                            </h:panelGrid>
    </ui:form>
    2 - Lorsque l'utilisateur clique sur le bouton saisir, le bean associé à la page persiste les données en base et place les composants dans l'état ReadOnly (cf. code ci-dessous).
    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
     
        public String createButton_action() {
            // Appel au DM
            ProductionProblemDM tDM = new ProductionProblemDM();
            try {
                this.getProductionProblem().setId(tDM.create(this.getProductionProblem()));
                // Désactivation de tous les champs
               this.getResolverDropDown().setDisabled(false);
               this.getManagerDropDown().setDisabled(false);
               this.getNumberTextField().setDisabled(false);
               this.getSynoTextField().setDisabled(false);
               this.getDetectionCalendar().setDisabled(false);
               this.getResolutionCalendar().setDisabled(false);
               this.getDescriptionTextArea().setDisabled(false);
               this.getProblemtypeDropDown().setDisabled(false);
               this.getApplicationDropDown().setDisabled(false);
               this.getReleaseDropDown().setDisabled(false);
               this.getCreateButton().setVisible(false);
            } catch(Exception tEx) {
                error("Impossible d'ins\351rer l'anomalie \n" + tEx.getMessage());
            }
     
            return null;
        }
    Jusque la tout fonctionne correctement. Les champs se grisent et toute saisie est interdite.

    3 - Lorsque (via un lien ou la saisie de l'url dans la barre d'adresse), je retourne sur la page de saisie, l'état des champs n'est pas réinitialisé. Ils ne sont plus accessibles en écriture bien que vides de leur contenu.

    Ma question : Comment remettre rendre l'accessibilité des champs en écriture ?

    Merci de votre collaboration !

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Il m'est avis que tu utilise FireFox !
    Essaye d'utiliser IE pour voir ce que cela donne

    Attention, n'utilise pas de nouvelle fenêtre d'IE mais bien une nouvelle instance (re double click sur ton lien IE)

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/10/2011, 16h52
  2. Réponses: 2
    Dernier message: 01/03/2011, 14h16
  3. JSF + Tiles, modifier seulement le body d'une page
    Par LeVickingRoux dans le forum JSF
    Réponses: 1
    Dernier message: 14/02/2007, 14h08
  4. Réponses: 7
    Dernier message: 12/03/2006, 22h29
  5. réinitialiser les liens d'une page html
    Par sisco dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/11/2004, 17h03

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