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 :

Passer la validations et mettre à jour le model


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut Passer la validations et mettre à jour le model
    Bonjour,

    J'ai deux page sur deux onglets.

    Je souhaiterai passer la validation de plusieurs champs mais de mettre à jour tout de meme le model sur l'une des pages. J'ai voulu utiliser la fameuse propriéte immediate sur les boutons interressé (à l'interieur de la page). Mais elle ne mets pas à jour mon model. J'ai lue dans la FAQ que normalement si l'on met immediate sur un champs, il sera mise à jour dans le model. Cependant cela ne marche pas (j'ai du mal comprendre).

    J'ai aussi essayer d'utiliser les subForm mais apparemment les subForm faisant partie d'un formulaire ne sont pas soumis quand on soumet le formulaire principal (ce qui ne semble pas donc correspondre à la définition d'un sous formulaire). Or quand je change d'onglet je soumet mon formulaire afin que toutes les données soit soumise (j'utilise t:panelTabbedPane pour les onglets).

    J'avoue que j'ai du mal à trouver des avantages à un framework comme JSF qui demande autant de complication pour juste contrôler notre validation.

    donc voici ma question:


    Comment passer la validation de plusieurs champs mais de mettre à jour tout de meme le model?

    Merci d'avance.

  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
    Par défaut
    tu veux dire quoi par mettre à jour le model ne mar che pas pas??
    tu peux donner un bout de code..

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut
    Je vais essayer de te passer un bout de code:

    voici ma page principale avec mes onglets, je te met juste le debut:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <h:form id="form">
    <t:panelTabbedPane activeTabStyleClass="onglet_on"
    												inactiveTabStyleClass="onglet_off"
    												tabContentStyleClass="onglet_content" serverSideTabSwitch="true"
    												immediateTabChange="false" binding="#{ProfilBETCtrl.view.tabs}"
    												style="width:1006px">
     
    <t:panelTab id="Identification"													label="#{messages_portail.onglets_identification}"
    styleClass="onglet_page">
           ............
    Qand je change d'onglet, tous le formulaire est soumis.

    Voici une partie de mon code avec un validateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <td class="information_numerique" width="200px">
    <t:inputText id="cp" forceId="true" required="true" style="width:200px"
    		value="#{bet.codePostalBET}" rendered="#{modifiable}" >
    	<f:validator validatorId="codePostalValidatorBET" />
    </t:inputText>
    <h:message for="cp" styleClass="label_rouge"/>
    </td>
    Cette partie est soumise à ma validations et m'affiche mon message si il y a une erreur lors de la soumission (changement de mon onglet par exemple)

    Voici mon code conerné par le immediate:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <t:dataTable border="0" styleClass="tableau"
    	value="#{bet.agences}" var="agence" rowIndexVar="index"
    	style="width:100%" rowClasses="ligneImpaire,lignePaire" >
    .....
              <!-- Mon champs texte agence-->
              <t:inputText  value="#{agence.nomagence}" rendered="#{modifiable}" styleClass="tailleMaximale"/>
    .........
             <!-- Mon bouton qui appel mon action -->
             <t:commandLink  action="#{controller.ajoutAgence}" immediate="true" title="Ajouter une agence">
    		<h:graphicImage url="/images/common/add.gif" style="border-color:white"/>
    	</t:commandLink>
    Je veux que quand je clique sur mon bouton mes validateurs concernant mon code n°2 ne soit pas exécuté. Ce que fait le immediate="true". Cependant la valeur saisie dans agence est perdue car le model n'est pas mis à jour.

    Si je mets des subForm, quand je change d'onglet les données à l'intérieur du subform ne sont opas soumise et donc perdu.

    As tu une solution pour que ma donnée dans agence ne soit pas perdu quand je clique sur mon bouton?

  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
    Par défaut
    ajoute le immediate aux composants input et pas dans le commandButton.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut
    Oui mais dans ce cas la validation ne se fera jamais meme quand je chagerai d'onglet. Non?

  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
    Par défaut
    et dans l'onglet ya pas un attribut comme immediate?
    quelle version de tomahawk?

Discussions similaires

  1. [Débutant] Mettre à jour @Model
    Par rvzip64 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 16/02/2015, 09h46
  2. Réponses: 0
    Dernier message: 13/03/2014, 12h31
  3. mettre à jour un champ du model après actions jquery.
    Par ncheboi dans le forum ASP.NET MVC
    Réponses: 5
    Dernier message: 26/04/2011, 13h44
  4. Réponses: 3
    Dernier message: 09/07/2004, 10h23
  5. Réponses: 6
    Dernier message: 14/02/2003, 16h52

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