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 1 Java Discussion :

tag struts logic


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Points : 95
    Points
    95
    Par défaut tag struts logic
    Bonjour, je voudrais simplement itérer sur le contenu d'une liste mais une exception est levée au moment de l'itération, et je ne trouve pas mon erreur...

    Voici mon code pour la classe ListContactAction:

    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
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws Exception {
     
    		// On récupère une instance Session
    		session = HibernateFactory.getSession();
     
    		// On initialiase la transaction
    		session.beginTransaction();
     
    		// On itère sur la table CONTACT
    		contactList = session.createQuery("from Contact").list();
     
    		// On ferme la transaction et la session
    		session.close();
     
    		// On transmet la liste des contacts à la page List.jsp
    		request.setAttribute("List", contactList);
     
    		return mapping.findForward("List");
    	}
    Voici le code de ma jsp (je récupère plus haut dans ma page la liste contactList avec la méthode request.getAttribute("List") :

    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
    <table border="1">
    	<tr>
    		<td align="center">Id</td>
    		<td align="center">Firstname</td>
    		<td align="center">Lastname</td>
    		<td align="center">Address</td>
    		<td align="center">PostalCode</td>
    		<td align="center">City</td>
    	</tr>
    	<logic:iterate id="contact" name="<%=contactList %>">
    		<tr>
    			<td><bean:write name="contact" property="id" /></td>
    			<td><bean:write name="contact" property="firstname" /></td>
    			<td><bean:write name="contact" property="lastname" /></td>
    			<td><bean:write name="contact" property="address" /></td>
    			<td><bean:write name="contact" property="postalCode" /></td>
    			<td><bean:write name="contact" property="city" /></td>
    			<td><bean:write name="contact" property="id" /></td>
    		</tr>
    	</logic:iterate>
    </table>
    Et voila l'exception levée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP
     
    Une erreur s'est produite à la ligne: 32 dans le fichier jsp: /WEB-INF/jsp/List.jsp
    Erreur de servlet générée:
    The method setName(String) in the type IterateTag is not applicable for the arguments (List<Contact>)
    Si vous avez une idée je suis preneur ! Merci beaucoup !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Comme le dit ton message d'erreur, l'attribut "name" pour le tag doit prendre en paramètre une String. Et toi tu lui passes une List.

    Je dirai de faire le tag comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:iterate id="contact" name="List">
    En fait tu n'as pas besoin de faire un getAttribute() pour récupérer la liste. Le tag Struts le fait pour toi. C'est pour ça aussi que tu peux préciser un attribut "scope" sur le tag, pour dire si l'objet que tu recherches se trouve en session, dans la requête, ...

    En général d'ailleurs les tags Struts sont là pour eviter de faire des scriptlets (du code Java) dans les JSP. Donc si tu es fait <% %> ou <%= %> dans ta JSP, demande toi si tu ne peux pas utiliser plutot des tags.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Points : 95
    Points
    95
    Par défaut
    Parfait, cela fonctionne
    Merci beaucoup ! en effet je n'avais pa saisi le fonctionnement de ces balises

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

Discussions similaires

  1. [STRUTS][LOGIC][COLLECTION]
    Par pi2r dans le forum Struts 1
    Réponses: 5
    Dernier message: 13/12/2004, 19h39
  2. [struts]logic:present
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/07/2004, 17h24
  3. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19
  4. [Struts][logic:iterate] Probleme avec String
    Par julienOriano dans le forum Struts 1
    Réponses: 7
    Dernier message: 15/06/2004, 09h39
  5. [Struts] logic:iterate avec un Vector
    Par laurentb dans le forum Struts 1
    Réponses: 18
    Dernier message: 03/03/2004, 14h42

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