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 :

Navigation dynamique JSF


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut Navigation dynamique JSF
    Bonjour,

    J'aimerais savoir si lors de la navigation, il est possible de faire une navigation dynamique.

    Je m'explique, une page peut avoir plusieurs redirections ,je passe un parametre (valeuir de la page suivante ) l'a ou on a cliqué et le récupere..J'initialise mon bean avec la valeur du retour et fais un return parametre passé ...

    Et dans ma navigation j'aimerais faire ceic
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        <navigation-rule>
            <from-view-id>/intro.jsp</from-view-id>
            <navigation-case>
                <from-outcome>#{controleur.suite}</from-outcome>
                <to-view-id>/#{controleur.suite}</to-view-id>
            </navigation-case>
        </navigation-rule>
    Plutot d'avoir quarente mille navigation de partout,ca serait plus simple...

    Merci de votre aide

  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 : 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
    Je doute que tu puisses faire un faces-config dynamique...
    D'autant que je doute sincèrement de la lisibilité (et donc de la maintenance) de la chose !
    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 confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    au contraire ca serait beaucoup plus smple.

    Au lieu d'avoir plusieurs navigations pour une seule page,t 'en aurais qu'une seule(ou le face-config.xml pointerais directement suir la page suivante...)

    Je me suis renseigné sur les possibiltés qu'offre le navigation rule, me suis appercue que tu peux mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <form:action>#{controleur.buttonAction]</form:action>
    Ca permet de savoir à ce que j'ai compris si c'est bien ce bouton qui a fait l'action, si on peut faire celà, pouquoi pas ma méthode???

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Tu devrais essayer d'utiliser la méthode du NavigationHandler

    handleNavigation(
    - le facesContext
    - la référence de l'action qui a été utilisée pour avoir le résultat "outcome", mettre null si le résultat à été obtenu autrement
    - le résultat "outcome"
    );

    On obtient le navigation handler comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FacesContext.getCurrentInstance().getApplication().getNavigationHandler()
    Je pense que si tu mets le nom de ton fichier JSP/XHTML comme résultat "outcome" cela devrait marcher.

    Si tu penses que ton XML est trop verbeux, utilise des règles globales, valables pour toutes les actions.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    325
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 325
    Par défaut
    Je suis du même avis que Romaintaz, ça serait assez peu clair comme façon de procéder.
    Ce que tu appelles des règles dynamiques sont en fait un joyeux bordel qui va te permettre de faire tout et n'importe quoi dans tes controllers et te poser pas mal de problèmes au final.
    Les règles "traditionnelles" ne brident pas la navigation et ne sont pas aussi statiques que tu sembles le croire. Elles autorisent en fait une assez grande souplesse.
    Essaies de trouver un bon tutoriel qui t'explique le fonctionnement de ces règles et je pense que tu pourras réaliser la navigation dans ton appli très facilement.

  6. #6
    Membre confirmé Avatar de maVariable
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Par défaut
    A mon avis, ce que tu cherche à faire existe de facon un peu moins "bordélique" comme le suppose sir_gcc...
    La méthode proposée est de renvoyer des outcome différents en fonction de certains critères. Tu dois par contre écrire tout les cas d'outcome dans ton faces-config.

    ex :
    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
    <navigation-rule>
          <navigation-case>
             <from-outcome>finir</from-outcome>
             <to-view-id>/fin.jsp</to-view-id>
             <redirect />
          </navigation-case>
       </navigation-rule>
       
       <navigation-rule>
          <navigation-case>
             <from-outcome>recommencer</from-outcome>
             <to-view-id>/alea.jsp</to-view-id>
             <redirect />
          </navigation-case>
       </navigation-rule>

    Conseil : va voir l'exemple complet sur ce lien :
    http://pagesperso-orange.fr/emmanuel.../J2EE/JSF.html
    recherche le chaine "navigation dynamique", tu aura plus d'explication.

    Ou encore :
    http://schmitt.developpez.com//tutoriel/java/jsf/introduction

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    merci les gars pour vos réponses, mais c'est pas exactement ce que je recherchais à faire

    Que j'aimerais en fait, c'est selon la réponse que l'on a choisi(par ex selon la valeur du bouton radio) d'aller dans telle ou telle page selon un parametre passé sur la page jsp.

    Et ensuite faire , nextp est le parametre qui est passé sur ma page jsp.Du coup, plutot d'avoir par exemple 4 navigation rule(4 boutons radios à laquelle l'endroit ou on a cliqué varie sur la page suivante, on en aura plus qu'une)

    controleur pointe directement sur la classe ou il y a ma méthode Suite()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <navigation-rule>
          <navigation-case>
             <from-outcome>#{controleur.nextp}</from-outcome>
             <to-view-id>/#{controleur.nextp}</to-view-id>
             <redirect />
          </navigation-case>
       </navigation-rule>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <p><html:commandLink action="#{controleur.Suite}"><core:param name="Suite" value="a2.jsp"/><html:outputText value="Oui"/></html:commandLink></p>
    	         <p><html:commandLink action="#{controleur.Suite}"><core:param name="Suite" value="a1.jsp"/><html:outputText value="Pas le temps / absent / indisponible"/></html:commandLink></p>
    	     		 <p><html:commandLink action="#{controleur.Suite}"><core:param name="Suite" value="e2.jsp"/><html:outputText value="Refuse de vous parler"/></html:commandLink></p>
    [code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	public String Suite() {
    		FacesContext context = FacesContext.getCurrentInstance();
    		Map map = context.getExternalContext().getRequestParameterMap();	
    		this.nextp=(String)map.get("Suite");
    		return this.nextp;
    	}

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 197
    Par défaut
    imposssible de procéder de cette façon donc ??

Discussions similaires

  1. Probleme de navigation avec JSF
    Par Evenmor dans le forum JSF
    Réponses: 7
    Dernier message: 16/01/2009, 17h14
  2. [AJAX] Navigation Dynamique ..
    Par iwf-fr dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/04/2007, 17h37
  3. Navigation - Débutant JSF/JSP
    Par fabou3377 dans le forum JSF
    Réponses: 3
    Dernier message: 26/03/2007, 15h32
  4. panelGrid dynamique jsf
    Par iuz dans le forum JSF
    Réponses: 9
    Dernier message: 11/01/2007, 15h07
  5. Réponses: 1
    Dernier message: 25/04/2006, 17h45

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