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 :

Positionnement des messages d'erreur


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut Positionnement des messages d'erreur
    Par défaut, lorsque j'ajoute la balise <h:message après une zone de texte, un vide est créé prêt à recevoir le message d'erreur, et si je le fait pour toutes mes zones de texte, ce ne sera pas du tout beau. Je voudrais réservé un seul espace au coin de page où j'affiche les messages d'erreur dans une div.

    je ne sais pas comment y parvenir

    merci

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Tu as essayé avec h:messages ? http://javaweb.developpez.com/faq/js...SANTS_messages

  3. #3
    Membre éclairé Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Par défaut
    Si vous aurez la possibilité de travailler avec richFaces, vous pouvez ajouter <rich:messages> dans ton div et les messages d'erreur s'affichent ensemble dans cette div.

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Effectivement, j'utilise messages, avec PrimeFaces <p:messages c'est possible de placer l'ensemble des messages dans une div. Mais j'ai deux petits problèmes.

    1) Je ne veux pas les messages systèmes, je veux mes messages personnalisés et pour avoir un message personnalisé, il faut une balise message unique à chaque champs. Les messages personnalisés me permettent d'être plus précis et de gérer l'internationalisation

    2) J'ai par exemple un composant PrimeFaces <p:growl http://www.primefaces.org/showcase-labs/ui/growl.jsf que je trouve interressant pour l'affichage de mes messages d'erreur. Pour cela, il faudrait que je récupère mes messages dans un Bean et que je les passe à ce composant

    3) Avec le 2) est ce à dire qu'il faudra gérer tout mes validateurs au niveau des Bean ? Si par exemple je veux tester si des champs sont vides, vais-je faire des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if((nom.length()==0) || (prenom.length()==0) || (age==0))
         return "Entrer les champs obligatoires, précédés par des étoiles";
    ???????
    Si oui, il faudra que toutes mes proprités soient initialisées au vide, si non je recevrait une exception, NPE, c'est à dire il faudra faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String nom=""; String prenom=""; int age=0;
    Merci.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    un message vide ne devrait rien générer comme balise coté client (c'est d'ailleurs pour ça qu'avec JSF on est obligé de les entourer d'un panel pour pouvoir les mettres à jour par ajax). Quelle est le code html généré par vos messages vides?? Quel est la source JSF de cette partie?

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Ok, peut-etre il y a quelque chose que je ne fais pas bien. Voici mon code il es très simple:
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml"
    	xmlns:ui="http://java.sun.com/jsf/facelets"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core">
     
    <h:head></h:head>
     
    <h:body>
     
    	<h:form>
     
    	<h:panelGrid columns="4">
    		<h:inputText id="nom" value="#{controlCustomer.cust.nom}" required="true" requiredMessage="Entrer le nom SVP"/>
    		<h:message for="nom" />
     
    		<h:inputText id="prenom" value="#{controlCustomer.cust.prenom}" required="true" 
    		requiredMessage="Entrer le prénom SVP" validatorMessage="Inférieur à 13 caractère"> 
    			<f:validateLength minimum="13"/>
    		</h:inputText>
    		<h:message for="prenom" />
     
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
     
    		<h:button value="Save Data"/>
     
    	  </h:panelGrid>
     
    </h:form>
     
    </h:body>
     
     
    </html>
    Et en plus les messages d'erreur ne s'affichent même pas. Je pensais que le seul fait d'envoyé le formulaire permettrait d'afficher les messages d'erreur, il y a t-il autre chose a faire ?

    Merci

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est le panelGrid qui fait que ça occupe une place, le panelGrid mettant exactement un composant par case. Regroupez, par exemple, le input et le message:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	<h:panelGrid columns="4">
                    <h:panelGroup>
    		<h:inputText id="nom" value="#{controlCustomer.cust.nom}" required="true" requiredMessage="Entrer le nom SVP"/>
    		<h:message for="nom" />
    		</h:panelGroup>
                    <h:panelGroup>
    		<h:inputText id="prenom" value="#{controlCustomer.cust.prenom}" required="true" 
    		requiredMessage="Entrer le prénom SVP" validatorMessage="Inférieur à 13 caractère"> 
    			<f:validateLength minimum="13"/>
    		</h:inputText>
    		<h:message for="prenom" />
                    </h:panelGroup>

    Ou, pour mettre tous les message dans une même case du panelgrid (cf votre demande à l'origine)

    Code xml : 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
    	<h:panelGrid columns="4">
    		<h:inputText id="nom" value="#{controlCustomer.cust.nom}" required="true" requiredMessage="Entrer le nom SVP"/>
     
    		<h:inputText id="prenom" value="#{controlCustomer.cust.prenom}" required="true" 
    		requiredMessage="Entrer le prénom SVP" validatorMessage="Inférieur à 13 caractère"> 
    			<f:validateLength minimum="13"/>
    		</h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
    		<h:inputText></h:inputText>
     
                    <h:panelGroup>
    			<h:message for="nom" />
    			<h:message for="prenom" />
                            <!-- etc -->
    		</h:panelGroup>			
    		<h:button value="Save Data"/>
     
    	  </h:panelGrid>

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Ouai, merci ça s'affiche très bien maintenant, sans décalage *

    Et quant aux messages d'erreur qui ne s'affichent pas. Je pensais que le seul fait d'envoyer le formulaire permettrait d'afficher les messages d'erreur, il y a t-il autre chose a faire pour que les messages s'affichent ?

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    Comment faire pour que les messages d'erreur s'affichent après envoie du formulaire ? Je pensais que c'était automatique

  10. #10
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    rajoutez à <h:messages/> pour voir si vous n'avez pas une erreur plus tot dans la validation qui ne serait pas liée à un composant

Discussions similaires

  1. [GUI] Gestion des messages d'erreurs
    Par agent007se dans le forum C++
    Réponses: 11
    Dernier message: 28/07/2006, 20h52
  2. gestion des messages d'erreurs
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 14h49
  3. chercher la signification des messages d'erreurs
    Par von_magnus dans le forum Général Python
    Réponses: 8
    Dernier message: 22/05/2006, 09h58
  4. Réponses: 4
    Dernier message: 11/05/2006, 11h28
  5. Configurer la langue des messages d'erreur
    Par Invité dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/09/2005, 11h11

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