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 :

La bonne manière d'inclure des pages


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut La bonne manière d'inclure des pages
    Bonjour, j'ai comme contrainte d'utiliser myFaces 1.1.5 sans facelets et je me demandais qu'elle était la bonne manière d'inclure les pages pour les parties de l'applic qui se répètent...

    Par exemple le header, le menu, le footer...

    Voici ce que j'avais prévu pour la page principale

    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
    <f:view>
    	<%
    	/*LOAD MESSAGES PROPERTIES*/
    	%>
    	<f:loadBundle
    		basename="com.steria.sib.web.bui.bundle.application.bui_messages"
    		var="bui_messages" />
     
     
    	<t:div id="global">
     
    		<%
    		/*INCLUDE HEADER*/
    		%>
    		<c:import url="/WEB-INF/inc/header.jsp" />
    		<%
    		/*INCLUDE MENU*/
    		%>
    		<c:import url="/WEB-INF/inc/menu.jsp" />
     
    		<%
    		/*INCLUDE CONTENT*/
    		%>
    		<c:import url="/WEB-INF/inc/content.jsp" />
     
    		<%
    		/*INCLUDE FOOTER*/
    		%>
    		<c:import url="/WEB-INF/inc/footer.jsp" />
     
    	</t:div>
     
     
    </f:view>
    Dans content.jsp je réinclus une page en fonction des valeurs choisies par l'utilisateur dans le menu.

    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
    <f:subview id="content_subview">
    	<t:div id="separator_div" forceId="true" />
    	<t:div id="content_div" forceId="true">
    		<t:div id="content_div_title" forceId="true">
    			<t:graphicImage url="#{navigationPageBean.titleIcon}" />
    			<t:outputText value="#{navigationPageBean.titleLabel}" />
    		</t:div>
    		<t:div id="content_div_core" forceId="true">
    			<c:if test="${not empty navigationPageBean.currentPage}">
    				<c:import
    					url="/WEB-INF/content/${navigationPageBean.currentPage}.jsp" />
    			</c:if>
    		</t:div>
    	</t:div>
    </f:subview>
    Je ne sais pas si cest la meilleure manière de faire surtout que ça limite beaucoup la navigation!!!

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    alos, tu peux soit faire comme tu l'as fait des includes (c'est inclu à la compilation par ton conteneur). C'est bien pour les parties qui n'utiliseraient pas jsf. Par contre, il est préférable, dans chaque jsp d'avoir un tag view, et d'utiliser subview pour l'inclusion, c'est plus propre coté jsf. Le simple inclue marche aussi, mais alors, il faut faire attention à ne pas avoir de tag view dans les jsp inclus, c'est une contrainte qui peux etre embetante dans certains cas (avoir un jsp qui peux servir à la fois en standalone ou en subview n'est pas possible dans ce cas là par exemple).

    Pour ce qui est des règles de navigation, pour limiter le nombre de règles, tu peux utiliser des pattern:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <navigation-rule>
      <from-view-id>/path/*</from-view-id>
      <navigation-case>
        <from-outcome>outcome</from-outcome>
        <to-view-id>destination-page</to-view-id>
        <redirect/>
      </navigation-case>
      <navigation-case>
        ...
      </navigation-case>
    </navigation-rule>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    ...create_alert_uinavmitem1 is duplicated in the faces tree...
    J'utilise MyFaces 1.1 et apparemment y a un soucis avec l'inclusion des pages!!! Il dit que l'ID est dupliqué...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tu as probablement inclu 2 fois tes headers menu.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    j'ai un petit problème avec les includes c'est que ma page jsp ne se trouve pas dans mon WAR mais dans un répertoire de mon disque dur existe t'il un moyen d'inclure ces pages autre que de mapper le répertoire où elles se trouvent ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    En fait, j'arrive une première fois sur ma page et après une action je reviens sur cette même page!!!! Mais je n'ajoute pas deux fois le menu!!! Enfin je pense... Je suppose que le cycle JSF se réinitialise à chaque appel...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Non, lors des appels suivants, le cycle JSF restore le component tree depuis la session, et traite les appels jsp de manière séparée. Ton problème, c'est:


    premier appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     view
       c:import
         subview
    Deuxième appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      view
          subview
      c:import
          subview
    ! erreur, subview présente 2 fois

    utilise jsp:include plutot que c:import. Le c:import viens de la jstl, hors la jstl est à ne pas mélanger avec jsf. Mea culpa, je t'avais induit en erreur. jsp:include étant inclu à la compilation jsf, c'est celui là qu'il faut utiliser (c'est comme si t'avais une seule page). Note aussi, il semble recommandé de mettre le subview auour du include plutot que dans le jsp inclus, en pratique, comme l'inclusion en fait un seul fichier, jsf ne vois pas la différence

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/12/2009, 22h20
  2. [Réseau] Inclure des pages web !
    Par GouKen dans le forum Langage
    Réponses: 7
    Dernier message: 30/01/2008, 08h30
  3. comment ajouter des pub, inclure une page web?
    Par silencer0 dans le forum Publicité
    Réponses: 2
    Dernier message: 21/07/2007, 01h57
  4. [jsp] Inclure des pages ASP et ASP.NET
    Par olive.m dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/05/2004, 12h41

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