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 :

Validator et submit de formulaire


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Par défaut Validator et submit de formulaire
    Bonjour,

    J'ai un module de type CRUD (create, read, update, delete) qui m'affiche une liste d'éléments. Un bouton d'édition en face de chaque ligne permet d'éditer () chacun des éléments.

    L'édition se fait dans un modalPanel qui s'affiche donc et qui contient le formulaire 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
     
    <rich:modalPanel id="editPanel" autosized="true">
                        <d:modalpanel.edit.common backingBean="#{billedOBLBean}"/>
                        <h:panelGrid columns="1">
    	                    <!-- Partie 1 : Détail de l'OBL facturé -->
                            <h:form id="oblForm" >
                                <h:panelGrid columns="1" id="oblDetail">
                                	<h:messages style="color:darkred"/>
    								<h:panelGrid columns="2">
    									<h:outputText value="#{msg.obl_edit_field_name}"/>
    	                                <h:panelGroup>
    	                                	<h:inputText id="nameField" value="#{billedOBLBean.currentRow.name}" >
    	                                    	<rich:ajaxValidator event="onblur" ajaxSingle="true" reRender="submitForm, labelSubmit, editSubmit"  summary="Enregistrement impossible."/>
    										</h:inputText>
    	                                    <rich:message for="nameField"/>
    	                                </h:panelGroup>
    	                                <h:outputText value="#{msg.obl_edit_field_company}"/>
    	                                <h:selectOneListbox size="1" value="#{billedOBLBean.currentRow.idCompany}"><f:selectItems value="#{billedOBLBean.companiesName}" /></h:selectOneListbox>
    	                            </h:panelGrid>
    	                            <rich:spacer width="1" height="20"/>
    								<h:inputHidden id="validate" value="#{billedOBLBean.currentRow.id}"/>
                                </h:panelGrid>
    								<h:outputText value="#{billedOBLBean.errorMessage}" id="labelSubmit"/>
                                    <a4j:commandButton action="#{billedOBLBean.doSave}" disabled="#{! empty facesContext.maximumSeverity}" id="editSubmit" value="#{msg.command_submit}" reRender="oblDetail, editPanel, mainTable" />
                                    <a4j:commandButton action="#{billedOBLBean.doCancel}" id="hidelink" value="#{msg.command_cancel}" immediate="true" ajaxSingle="true" />
                                    <rich:componentControl for="editPanel" attachTo="hidelink" operation="hide" event="onclick"/>
                            </h:form>
    Mon soucis est que j'utilise un ajaxValidator qui va valider () le contenu de mon champ en fonction d'annotation sur mon objet Hibernate.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        @Basic
        @Column(name = "Nom")
        @Pattern(regex="[\\sA-Z0-9]+", message="Le nom doit être en majuscule, avec ou sans caractères numériques.")
        private String name;
    Le message d'erreur s'affiche bien en regard du champ quand je tape n'importe quoi dedans mais j'arrive aussi en toute impunité à valider mon formulaire (le modalPanel se ferme et j'ai un autre message d'erreur, celui du summary de mon AjaxValidator qui s'affiche dans mon champ messages au dessus de ma liste, c'est déjà ça..).

    Ce que je souhaiterai faire c'est interdire la soumission de mon formulaire en retournant false sur le onsubmit par exemple ou en grisant mon champ "valider" si le formulaire contient des valeurs incorrecte.

    Je n'y suis pas arrivé avec #{! empty facesContext.maximumSeverity}" sur le display de mon bouton ni en le mettant dans le onsubmit.

    Quelqu'un aurait-il une autre solution svp?

  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
    la solution est .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 31
    Par défaut
    OK, j'ai pu affiné ce que j'avais fait avec ce lien.
    C'est un peu différent de ce que je voulais faire mais ça fonctionne maintenant.
    Encore merci Sniper37!

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

Discussions similaires

  1. Validation de champs ds formulaire
    Par fikou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 09/03/2006, 13h57
  2. Validation, verification d'un formulaire
    Par ffraggy dans le forum ASP
    Réponses: 4
    Dernier message: 09/02/2006, 15h04
  3. Réponses: 2
    Dernier message: 08/02/2006, 12h29
  4. [Javascript] Validation soumission d'un formulaire
    Par nico33307 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 15h05
  5. Réponses: 6
    Dernier message: 05/07/2005, 16h33

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