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

Servlets/JSP Java Discussion :

problème lien dans une même page avec c:foreach


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut problème lien dans une même page avec c:foreach
    Bonjour,

    Je veux afficher une liste de domaines et puis afficher une liste de ces domaines avec leur objectifs et leur pratiques, et en cliquant sur un domaine on est envoyé vers ce domaine avec ces objectifs et ces pratiques.

    pour afficher les domaines tous seuls j'ai le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <c:forEach var="domaine" items="${sessionScope.domaines}">
      </tr>
         <A href="#iter"  tppabs="#iter"><c:out value="${domaine.abreviation}"/></A>
      </tr>
    </c:forEach>
    et pour afficher les domaines avec leurs objectifs et pratiques j'ai le 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
     
    <c:forEach var="domaine" items="${sessionScope.domaines}">
       <c:out value="${domaine.niveauCMMI}"/>
       <A name=iter><c:out value="${domaine.abreviation}"/></A>
       <c:out value="${domaine.titre}"/>
             <c:forEach var="objectif" items="${sessionScope.objectifs}">
    	<c:if test="${domaine.id==objectif.domaineprocessusId}">
                        <c:out value="${objectif.abreviation}"/>
                        <c:out value="${objectif.titre}"/>
                          <c:forEach var="pratique" items="${sessionScope.pratiques}">
    		  <c:if test="${pratique.objectifId==objectif.id}">
    	                    <c:out value="${pratique.abreviation}"/>
                                    <c:out value="${pratique.titre}"/>
                               </c:if>
    	         </c:forEach>						</c:if>
         </c:forEach>			
    </c:forEach>
    mais le problème est que quand je clique sur un des domaine affichés en premier je suis toujours envoyé vers le premier domaine de la second liste. je crois que c'est normale c'est le premier domaine qui prend le name iter et donc on s'oriente vers lui, mais je ne sais pas comment faire.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Ben, je vois pas vraiment où est le mystère, toutes tes ancres s'appellent "iter", donc il va à la première...
    Il te faudrait plutot un lien et une ancre du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A href="#iter${domaine.id}" >
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A name="iter${domaine.id}">

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    ça ne marche pas, il considère que iter${domaine.id} est le nom de l'ancre et du coup il envoie toujours vers la même valeurs.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Ah, ton serveur ne supporte pas JSP 2, sinon il devrait interpreter l'expression. Dans ce cas, est-ce que ca ca marcherait ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A name="<%=domaine.getId()%>">
    EDIT : ou ca, pour rester en JSTL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <A name="<c:out value="${domaine.id}"/>">

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    la première proposition génére une erreur, et la deuxième ne marche pas. on n'est même plus orienté vers le premier élément de la liste.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    J'ai oublié d'ajouter les "iter" et "#iter" au passage...
    Quel est le code HTML généré avec la deuxième solution ?

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 11
    Points
    11
    Par défaut
    merci beaucoup, voilà les codes qui marchent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <A href="#iter$<c:out value="${domaine.id}"/>">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <A name="iter$<c:out value="${domaine.id}"/>">
    merci encore, affiché le code html généré m'a beaucoup aidé à comprendre ce qui ne marchait pas.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Oui, à force de faire du html "struts/jstl/java" on en finit par oublier de regarder le vrai html.

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

Discussions similaires

  1. Ouvrir un lien dans une même page a la suite ..
    Par xavioche77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/05/2010, 23h03
  2. Lien dans une même page (self)
    Par seksaki dans le forum Flash
    Réponses: 1
    Dernier message: 14/12/2009, 21h20
  3. Réponses: 0
    Dernier message: 01/07/2008, 16h16
  4. Plusieurs style de liens dans une même page
    Par keishah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/08/2006, 14h22

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