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 :

Balise message: récupération de la liste


Sujet :

JSF Java

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut Balise message: récupération de la liste
    Bonjour,

    est-il possible de savoir, dans la page, si des messages d'erreurs (dû à des validation par exemple) vont être affichés via la balise "message"? Plus clairement, est il possible de faire un est de vide/null sur la liste contenant ces messages d'erreurs?
    Je voudrais en fait afficher une box uniquement s'il y a des messages d'erreurs d'où mon besoin pour ce test.

    Merci d'avance,

  2. #2
    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
    Bonjour et bienvenue,

    Je ne suis pas sûr de comprendre ton besoin dans la mesure où <h:messages/> et <h:message/> ne s'affiche que s'il existe des messages !

    Sinon, un moyen de connaître la liste des messages (et donc de savoir s'il y en a) et d'appeler la méthode FacesContext.getMessage()...
    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

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    Merci de ta réponse.
    En fait, au premier chargement, mon formulare ne contient qu'une box avec les champs à compléter et les boutons.
    Lors du submit, la validation s'effectue et j'aimerais, uniquement s'il y a des messages d'erreurs, afficher une deuxième box pour les afficher.
    En testant directement dans la page la présence ou non de messages d'erreurs (à l'aide de ce que tu as expliqué plus haut), j'utilise l'un ou l'autre gridLayout:
    <%
    if(desErreurs)
    {
    %>
    <f:facet name="...">
    <tc:gridLayout ... rows="200px"/>
    </f:facet name="...">
    <%
    }
    else
    {
    %>
    <f:facet name="...">
    <tc:gridLayout ... rows="100px"/>
    </f:facet name="...">
    <%
    }
    %>
    En mettant des system.out dans les deux conditions, le test est effectué avec succès (il entre dans la bonne condition). Cependant, la taille de ma box ne change pas.

    Une idée?

  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
    Il n'y a que la taille du gridLayout qui change selon la présence / absence d'erreurs ?
    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 habitué
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    Le code permettra de mieux comprendre.
    Voici le premier fichier, qui en inclu d'autres:

    <%@ taglib uri="http://myfaces.apache.org/tobago/component" prefix="tc" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>

    <f:view locale="#{clientConfigController.locale}">
    <tc:loadBundle basename="portal" var="i18n"/>
    <tc:page id="page">
    <f:facet name="layout">
    <tc:gridLayout border="0" columns="200px;775px;*" margin="10px" rows="100px;25px;700px;25px"/>
    </f:facet>

    <jsp:include page="/views/common/header.jsp"/>
    <jsp:include page="/views/common/menuTop.jsp"/>
    <jsp:include page="/views/mapage/maPage.jsp"/>
    <jsp:include page="/views/common/footer.jsp" />

    </tc:page>
    </f:view>

    Et voici le fichier maPage.jsp:


    <f:subview id="maPage">
    <jsp:body>
    <tc:column>
    <tc:panel>
    <tc:tree value="#{navigationController.tree}" mode="menu" id="nav" nameReference="userObject.title" idReference="userObject.id" state="#{navigationController.state}" showIcons="false" showJunctions="false" showRoot="false">
    <f:facet name="treeNodeCommand">
    <tc:link action="#{navigationController.navigate}" immediate="true" />
    </f:facet>
    </tc:tree>
    </tc:panel>
    </tc:column>
    <tc:column>
    <tc:form id="layout">
    <tc:box height="700px">
    <f:facet name="layout">
    <tc:gridLayout rows="81px;285px;30px;250px" />
    </f:facet>
    <tc:box label="#{i18n.responsiblePart}">
    <f:facet name="layout">
    <tc:gridLayout rows="20px;20px" columns="*;*" />
    </f:facet>
    <tc:column>
    ...
    </tc:column>
    ...
    </tc:box>
    <tc:box>
    <f:facet name="layout">
    <tc:gridLayout rows="175px;70px" />
    </f:facet>
    <tc:panel>
    <f:facet name="layout">
    <tc:gridLayout rows="20px;20px;20px;20px;20px;20px" columns="*;*" />
    </f:facet>
    ...
    </tc:panel>
    ...
    </tc:box>

    <tc:panel height="250px">
    <tc:messages showSummary="true" showDetail="true" />
    </tc:panel>

    </tc:box>
    </tc:form>
    </tc:column>
    <tc:column>
    </tc:column>
    </jsp:body>
    </f:subview>


    J'aimerais rendre dynamiques les parties en gras, afin de n'afficher le panel des erreurs que s'il y a des erreurs en utilisant ton code donné plus haut. Le problème est que la partie 2 change bien (un ascenseur s'ajoute lorsque des erreurs sont présentes) par contre la partie 1 ne change jamais. J'aimerais en fait eviter l'apparition de l'ascenseur et agrandir la page dynamiquement. Pourtant, il entre dans la bonne condition.

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 12
    Par défaut
    Bien, j'ai fait autrement.
    C'est moins beau, mais faute de réponse...
    Merci quand même!

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 05/12/2008, 10h45
  2. Réponses: 18
    Dernier message: 17/01/2008, 11h54
  3. Récupération d'une liste déroulante
    Par artotal dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2006, 23h29
  4. Récupération d'une liste de structures Oracle via Java
    Par MagikMarcel dans le forum Langage
    Réponses: 2
    Dernier message: 29/06/2006, 16h34
  5. Récupération d'ne liste envoyé par formulaire
    Par Leviathan_72 dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 09h36

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