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

Struts 2 Java Discussion :

<c:foreach> au lieu de <s:iterator>


Sujet :

Struts 2 Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut <c:foreach> au lieu de <s:iterator>
    salut pour tous,

    j'utilise struts 2, j'ai utiliser le tag <s:iterator> pour afficher ma liste d'objet,
    maintenant je veux afficher le meme résultat on utilisant le jstl taf <c:foreach> et un tableau comment je peu faire ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table border="1">
          <tbody>
            <s:iterator  value="myList">
     
     <tr> <td> <s:property value="valeur1" /> </ td>  </tr> 
     <tr> <td> <s:property value="valeur2" /> </ td>  </tr> 
     <tr> <td> <s:property value="valeur3" /> </ td>  </tr> 
            </s:iterator>
          </tbody>
        </table>
    maintenant je veux le meme affichage avec c:foreach
    j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <c:forEach var="list" items="myList" begin="0" end="3">
     
               ${list}<br />
        </c:forEach>
    mais ne marche pas, il m'affiche myList dans la page jsp,
    comment je fait une itération sur ma liste myList avec <c:forEach. ???

    Merci pour votre aides.

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <c:forEach var="list" items="${myList}" begin="0" end="3">
               ${list}<br />
    </c:forEach>

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Merci bien de votre participation,
    j'ai appliqué ce que vos m'a dit mais, Il m'affiche une erreur :

    le code que j'ai mie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <c:forEach var="list" items="${newsList}" begin="0" end="3">
       // newsList est une liste dans mon action ActionNews.java
               ${list}<br />
        </c:forEach>
    l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Struts Problem Report
     
    Struts has detected an unhandled exception:
    # Messages: 	/content/news.jsp(51,4) D'apr�s la TLD, l'attribut items n'accepte aucune expression
    File: 	org/apache/jasper/compiler/DefaultErrorHandler.java
    Line number: 	40

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Bon, j'ai fait une erreur lors de l'importation de la bibliothèque nécessaire pour le tag for each:
    moi j'ai mie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
    et la bonne est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core"%>
    Maintenant la liste des objets s'affiche bien dans ma page jsp. le problème est résolue pour le passage de <s:iterator> à <core:foreach>

    il y a un autre problème :

    j'ai mis un lien avec en utilisant <s:iterator> qui m'affiche une autre page jsp ou il y a tous les renseignements sur l'objet courant les autre de l'objet aussi un lien pour edit et autre pour delete.
    le problème c'est que l'id de l'objet courant ne se passe pas avec <core:foreach>
    Avec <s:iterator> tous marche bien en utilsant le tag struts2 <s:param name="id" value="id" /> je peut passer l'id,

    Avec <s:iterator> et <s:param>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     <table border="1">
            <s:iterator id="newsList" value="newsList">
              <tr >
                <td><s:url id="completeNewsUrl" action="completeNews">
                  <s:param name="id" value="id" /> 
    // passage de l'id courant, utilisé  dans l'action 
                </s:url> <s:a href="%{completeNewsUrl}">
                  <s:property value="headline" />
     
                </s:a>   <br /><s:property value="teaser" />
    </td> 
    </tr> 
    </s:iterator> 
    </table>
    Avec <core:foreach> et <s:param> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <table>
          <core:forEach var="list" items="${newsList}" begin="0" end="3">
            <tr>
     
              <td><s:url id="completeNewsUrl" action="completeNews">
                <s:param name="id" value="id" />
              </s:url> <s:a href="%{completeNewsUrl}">
                  ${list.teaser}
     </s:a>
                  <br />
              ${list.teaser}            
     </td>
    </core:forEach>
    </table>
    erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Struts Problem Report
     
    Struts has detected an unhandled exception:
    # Messages: 	id to load is required for loading
    File: 	org/hibernate/event/LoadEvent.java
    Line number: 	51
    Comment je peut récupérer l'id courant dans un foreach et le passer à mon Action.java pour effectuer l'affichage de tous les propriété de objet courant et pour faire l'edit et le delete sur l'item courant ???

    Merci de votre aides.

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Dans le cas du forEach, il faudrait plutôt utiliser les tags url et param de la JSTL.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Merci pour votre suivie "c_nvy", j'ai appris de votre part beaucoup de choses, dans cette discussion.

    on appliquant les les tags url et param de la JSTL avec les action de struts2 devient un peu compliqué, j'ai essayé mais je ne peux pas récupérer l'id courant.
    j'ai utilisé une autre idée dans mon application, et j'ai l'aissé tombé l'utilisation de <c:foreach>.

    Merci.

Discussions similaires

  1. [Smarty] Foreach - deux résultats par ligne au lieu d'un
    Par poupou19 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 28/01/2012, 05h43
  2. Pourquoi me conseille t'on le C au lieu de VB ?
    Par hicham000 dans le forum Langages de programmation
    Réponses: 16
    Dernier message: 11/06/2004, 19h38
  3. [BDD] renvoyer une chaine vide au lieu de null
    Par cmoulin dans le forum JDBC
    Réponses: 6
    Dernier message: 06/05/2004, 11h38
  4. Equivalent IN ms avec un ET au lieu du OU ds la lste
    Par Pompil dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/03/2004, 21h20
  5. [TOMCAT] affichage arborescence au lieu d'éxécuter la servle
    Par lombra dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 13/08/2003, 13h30

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