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 :

[RichFaces] rich:message ne s'affiche pas dans rich:dataTable


Sujet :

JSF Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut [RichFaces] rich:message ne s'affiche pas dans rich:dataTable
    J'ai (encore) un souci avec ma rich:dataTable!

    Avant, dans ma table de jsf je mettait un message donné par mon code java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FacesMessage msgTT1 = new FacesMessage(FacesMessage.SEVERITY_INFO, 
    "Init check done",
    String.format("%d TT1 received from %s for %s",
    receivedTT1.size(), ID, tID));		
    ctx.addMessage("mainForm:TT1List", msgTT1);
    Comme ça, c'est ok:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <x:dataTable
    	preserveDataModel="true"
    	id="tt1List"
    	var="tt1"
    	value="#{ta.receivedTT1}">
    	<f:facet name="header">
    		<x:message for="tt1List" showSummary="false" showDetail="true" />
    	</f:facet>
    .....
    <x:dataTable>
    Mais dans la dataTable le message n'est pas affiché! Par contre, il est bien affiché si je le place après la dataTable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <rich:dataTable id="tt1List"
    	var="tt1" 
    	value="#{ta.receivedTT1}">						
    		<f:facet name="header" >				
    			<rich:columnGroup>		
    				<rich:column colspan="13">
    					<x:message for="tt1List" showSummary="false" showDetail="true" />
    				</rich:column>
     
    		...
     
    </rich:dataTable>
    <x:message for="tt1" showSummary="false" showDetail="true" />
    pourquoi?? c'est où l'erreur??

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    si jamais, j'ai essayé avec "x:message", "h:message" et "rich:message".
    ça ne change rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://myfaces.apache.org/extensions" prefix="x"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
    <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
    j'utilise richfaces 3.1.6.
    JSF 1.1
    Tomcat 5.5
    Java 1.5
    MyFaces
    tomahawk 1.1.9

    Je n'ai pas d'erreurs au chargement de la page.
    Avez-vous besoin d'autres infos?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut


    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:messages layout="list">
    ça fonctionne! Mais, comme j'ai plusieurs messages pour cette page, il les met tous....

    Mais, ça se fais comment alors, que avec "message" simple il n'en veut pas en savoir??

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    en "magouillant" j'arrive à quelque chose... mais j'ai vraiment un problème de compréhension et je n'arrive pas à trouver quelque chose qui m'explique sur le net...

    en tout cas: voilà mon dernier bout de code:
    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
    <rich:message for="tt1List">
    	<f:facet name="passedMarker">
    		<h:outputText value="eeeeeeeeeeeeeeerr" />
    	</f:facet>
    	<f:facet name="errorMarker">
    		<h:graphicImage value="/images/bg_top.gif" />   
    	</f:facet>
    </rich:message>
     
    <rich:dataTable cellspacing= "2"
    	cellpadding= "2"
    	id="tt1List"
    	var="tt1" 
    	value="#{ta.receivedtt1}"		
    	styleClass="standardTable" 
    	headerClass="standardTable_Header"
    	footerClass="standardTable_Header"
    	rowClasses="standardTable_Row1,standardTable_Row2"
    	columnClasses=""
    	style="font-size: 10px; width:101%">						
    	<f:facet name="header" >
    	<rich:columnGroup>			
    		<rich:column colspan="13">
    			<rich:message for="tt1List">
    				<f:facet name="passedMarker">
    					<h:panelGrid>
    						<h:outputText value="A4" />
    						<rich:message for="tt1List" showSummary="true" showDetail="true" />
    						<h:outputText value="Asdfg" />
    					</h:panelGrid>
    				</f:facet>
    					<f:facet name="errorMarker">
    					<h:graphicImage value="/images/bg_top.gif" />   
    				</f:facet>
    			</rich:message>
    		</rich:column>
    ...
    avec ça j'ai affiché le message avant la table. Mais pas d'images.
    Et dans la table, j'ai les textes "A4" et "Asdfg" à la suite, mais sans message!
    j'ai remis le tag "rich:message" à l'intérieur...juste pour voir, mais ça ne change rien...

    je ne comprend pas pourquoi le même code à l'interieur et à l'extérieur de la dataTable n'affiche pas les mêmes choses!??
    (j'ai aussi fais copier coller du code pour être sure d'avoir le même code...mais toujours pareil)

    j'ai lu quelque chose sur le tag "<a4j:outputPanel>", mais qu'il n'est pas nécessaire... j'ai essayé, ça ne change rien...

  5. #5
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    tu as essayé d'entourer le message d'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:panelGroup layout="div" >
     
    <rich:message />
     
    </h:panelGroup>

  6. #6
    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 : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Juste une correction : pour afficher un DIV, c'est:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <h:panelGroup layout="block">
        ...
    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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    j'ai jsf 1.1, donc pas de layout... j'ai essayé avec tomahawk mais j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NoSuchMethodError: org.apache.myfaces.component.html.ext.HtmlPanelGroup.getLayout()Ljava/lang/String;
    mais ce n'est pas grave, j'ai utilisé <x:div>...mais rien.
    Si j'affiche le code source j'ai ça pour le message affiché en dehors de la table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <span id="mainForm:_id44" class="rich-message">
    	<span class="rich-message-label">
    		2 TT1 received from 000 for 777
    	</span>
    </span>
    et dans la table, le voilà disparus!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div>
    	<span id="mainForm:tcacdList:_id47" class="rich-message">
    		<span class="rich-message-label">
    		</span>
    	</span>
    </div>
    avec et sans div...

  8. #8
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    je pense que ça existait déjà en 1.1 le layout block ..
    merci romaintaz pour la correction

    Regarde ce post , il semble similaire au tient.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    Merci beaucoup pour les réponses.
    Avec layout block j'ai l'erreur "L'attribut layout est incorrect pour le tag panelGroup d'après la TLD indiquée"...

    j'ai regardé le post indiqué par Sniper37. Je ne sais pas si c'est vraiment la même chose...si j'ai bien compris, dans ce post le toolTip est affiché, mais décalé...chez moi il n'y a rien d'affiché...

    j'ai quand même essayé, mais je n'ai pas de résultats...
    mais en fait le workaround qui utilisent c'est le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a4j:support event="onviewactivated" reRender="table, messages"/>
    ?
    Ou bien je n'ai rien compris?

    En tout cas j'ai trouvé une autre astuce...si je le met dans une autre table (même avec dataTable! ), le message est affiché.....et je la colle à la deuxième....mais c'est très moche (point de vue code)...et je ne comprend toujours pas pourquoi ça ne veut pas fonctionner....

    Mai s'il n'y a pas d'autres propositions je vais garder comme ça...

    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
    <h:panelGrid columns="1" cellspacing= "2"
            cellpadding= "2"
            id="tt1List2"
    	styleClass="standardTable" 
    	headerClass="standardTable_Header"
    	style="width:101%;
    	border-left: 1px solid;
    	border-top: 1px solid;
    	border-right: 1px solid;
    	border-bottom: 0px">						
    	<f:facet name="header" >
    		 <rich:message for="tt1List" id="msg"/>
    	</f:facet> 
    </h:panelGrid>
     
    <rich:dataTable cellspacing= "2"
                		cellpadding= "2"
                		id="tt1List"
    			var="tt1" 
    			value="#{ta.receivedtt1}"		
    			styleClass="standardTable" 
    			headerClass="standardTable_Header"
    			footerClass="standardTable_Header"
    			rowClasses="standardTable_Row1,standardTable_Row2"
    			columnClasses=""
    			style="width:101%;
    			border-left: 1px solid;
    			border-top: 0px ;
    			border-right: 1px solid;
    			border-bottom: 1px solid">										
    			<f:facet name="header" >
    			<rich:columnGroup>																	
    				<rich:column>
    					.....

  10. #10
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    le plus important dans le post c'est :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <script>
     function showShared(msgElement, event){
     #{rich:element('sharedTT')}.innerHTML =msgElement.innerHTML;
     jQuery.each(jQuery('.sharedTT .rich-message-marker'), function(){this.remove()})
     #{rich:component('tt')}.show(event);
     }
    </script>

    l'évènement est lié au composant inputInplace je pense, je pense que ça doit être le même problème, changer le tooltip par dataTable.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    j'ai mis l'écoute des événements sur un bouton, juste pour tester:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:commandButton
    	action="#{ta.cancel}"
    	immediate="true"
    	value="#{msg['ta.jsp.cancel']}" 
    	onmouseover="showShared(#{rich:element('msg')}, event);" onmouseout="#{rich:component('tt')}.hide(event);"/>
    mais j'ai l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    javax.faces.el.EvaluationException: Expression: 'showShared(#{rich:element('msg')}, event);'
    javax.faces.el.ReferenceSyntaxException: Functions not supported in expressions. Function: rich:element

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 226
    Points : 114
    Points
    114
    Par défaut
    j'ai trouvé une autre tricherie..
    j'assigne le message à un objet caché en dehors de la table. Comme ça il s'affiche.
    Il ne supporte vraiment pas d'afficher un message lié à la table dans cette même table...

    Merci à tout le monde pour l'aide!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/11/2005, 15h38
  2. Icone ne s'affichant pas dans la barre de titre
    Par Spartan03 dans le forum Windows
    Réponses: 22
    Dernier message: 05/11/2005, 14h57
  3. [CSS][IE]background d'affiche pas dans div sur IE
    Par Thomzz dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 21/09/2005, 23h32
  4. Noms des colonnes ne s'affichent pas dans un JTable
    Par Bourdet dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/07/2005, 15h26
  5. Une valeur ne s'affiche pas dans un champ texte
    Par KibitO dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2005, 20h42

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