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 :

commandLink ne marche pas ? (subtilité ?)


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut commandLink ne marche pas ? (subtilité ?)
    Bonjour,

    je ne comprend pas le comportement de commandLink dans certains cas, voici mon exemple :

    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
    <!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:f="http://java.sun.com/jsf/core"
    	xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:ui="http://java.sun.com/jsf/facelets">
    <head>
    <title>Site de petites annonces</title>
    </head>
    <body>
    	<f:view>
    		<h:form>
    			<h:commandLink action="go_announcements" value="Retour aux annonces" />
    		</h:form>
    
    		<ui:repeat value="#{annonce_manager.listAnnonces}" var="a">
    
    			<h:panelGroup rendered="#{a.id eq param.id}">
    				<h:panelGroup rendered="#{a.email ne client.email}">
    					<h3>Détail de l'annonce #{a.titre}</h3>
    
    					<ul>
    						<li>#{a.date}</li>
    						<li>#{a.description}</li>
    						<li>#{a.prix}</li>
    					</ul>
    					<h:panelGroup rendered="#{client.connecte ne 1}">
    						
    <!--méthode provisoire qui marche-->
    <!--<h:outputLink value="login.xhtml">Connectez-vous pour faire une proposition</h:outputLink>-->
    						<h:form>
    							<h:commandLink action="go_login" value="Connectez-vous pour faire une proposition" />
    						</h:form>
    					</h:panelGroup>
    
    					<h:panelGroup rendered="#{client.connecte eq 1}">
    						<h:outputLink value="proposal_create.xhtml?id=#{a.id}">Faire une proposition</h:outputLink>
    					</h:panelGroup>
    				</h:panelGroup>
    			</h:panelGroup>
    		</ui:repeat>
    	</f:view>
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	<navigation-rule>
    		<display-name>announcement_see.xhtml</display-name>
    		<from-view-id>/announcement_see.xhtml</from-view-id>
    		<navigation-case>
    			<from-outcome>go_announcements</from-outcome>
    			<to-view-id>/announcements.xhtml</to-view-id>
    		</navigation-case>
    		<navigation-case>
    			<from-outcome>go_login</from-outcome>
    			<to-view-id>/login.xhtml</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    La redirection du premier commandLink marche très bien. La redirection du deuxième commandLink vers la page de login en revanche ne marche pas : la page courante est rechargée avec la perte des paramètres post contenu dans param.

    Du coup y'a t-il une subtilité pour ces commandLink, ne pas les mettre dans telle ou telle balise etc ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut
    Evidement même problème avec commandButton

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut
    Salut ,

    J'avais essayé la même chose une fois et cela ne fonctionner pas.
    Pour résoudre le problème (sans vraiment comprendre pourquoi ), j'ai crée une nouvelle règle de navigation, ce qui donnerai dans ton cas :

    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
     
    	<navigation-rule>
    		<display-name>announcement_see.xhtml</display-name>
    		<from-view-id>/announcement_see.xhtml</from-view-id>
    		<navigation-case>
    			<from-outcome>go_announcements</from-outcome>
    			<to-view-id>/announcements.xhtml</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    	<navigation-rule>
    		<display-name>announcement_see.xhtml</display-name>
    		<from-view-id>/announcement_see.xhtml</from-view-id>
    		<navigation-case>
    			<from-outcome>go_login</from-outcome>
    			<to-view-id>/login.xhtml</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    J'ai jamais vraiment compris pourquoi j'avais du faire ceci, mais ca fonctionner.

    Si quelqu'un à une explication, je suis preneur

  4. #4
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut
    Arf pas de chance pour moi, ca ne marche toujours pas

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 65
    Par défaut
    L'attribut rendered du panelgroup semble poser problème, lorsque je l'enlève ou que je lui donne la valeur true, les commandLink marche
    <h:panelGroup rendered="#{a.id eq param.id}">

    Très bizarre...

  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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Peut-être que le fait de mettre des form dans un ui:repeat pose problème ?

    Essaie pour voir de mettre tout le contenu de la page dans un seul formulaire:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    <body>
        <f:view>
            <h:form>
                <h:commandLink action="go_announcements" value="Retour aux annonces" />
                <ui:repeat value="#{annonce_manager.listAnnonces}" var="a">
                    ...
                </ui:repeat>
            </h:form>
        </f:view>
    </body>
    </html>
    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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2013, 14h18
  2. CommandLink marche pas dans Datatable
    Par snipes dans le forum JSF
    Réponses: 1
    Dernier message: 14/02/2011, 09h18
  3. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  4. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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