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 :

logic:Iterate - cannot find bean


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Par défaut logic:Iterate - cannot find bean
    Bonjour,
    voici mon problème:
    Je crée une application avec un tag logic:iterate dans ma jsp pour afficher les données d'une liste définie dans mon bean java. Malheureusement je reçois l'erreur suivante:

    org.apache.jasper.JasperException: Exception in JSP: /gestionSecteurs/listeClients.jsp:43
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    40: 	<td>La liste des clients</td>
    41: 	<td align="left">
    42: 										
    43: 		<logic:iterate id="client_i" name="ListeClientsForm" property="client">
    44: 			<bean:write name="client_i"/>
    45: 		</logic:iterate>
    46:

    cause mère

    javax.servlet.ServletException: Cannot find bean: "ListeClientsForm" in any scope
    ---------------------------------------------------------------------------
    Pour la précision, j'ai une classe (bean) java qui contient une variable de type ArrayList qui se nomme client, Voici 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
    public class ListeClientsForm extends ActionForm
    {
    	private static final long serialVersionUID = 1L;
     
    	private ArrayList client = new ArrayList();
     
    	public ArrayList getListeClients() {
    		return client;
    	}
     
    	public void setListeClients(ArrayList client) {
    		this.client = client;
    	}
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
    		client = new ArrayList();
    	}
    }
    ---------------------------------------------------------------------------

    Le problème vient surement de l'utilisation de la boucle iterate, et plus précisément le chemin pour accéder au bean. Si c'est bien cela comment faire pour accéder a mon bean avec mon arborescence (que voici ci dessous):


    Projet\WEB-INF\src\package\ListeClientsForm.java
    Projet\gestionSecteurs\listeClients.java

    Quelqu'un aurait il une idée s'il vous plait?
    Merci

  2. #2
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:iterate id="client_i" name="ListeClientsForm" property="client">
    L'attribut name attend le nom du formulaire que tu as mis dans le struts-config, pas le nom de la classe.
    Pour property, tu n'as pas de getClient mais un getListeClients, il faudra donc mettre property="listeClients".

  3. #3
    Membre averti
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Par défaut
    Merci beaucoup Ricky81 pour ta réponse (très rapide en plus!)

    Alors effectivement tu as tout a fait raison en ce qui concerne l'attribut name (il fallait que je mette listeClientForm au lieu de ListeClientForm car je l'a défini comme ca dans mon struts-config.xml. Ci dessous mon struts-config.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <!-- listeClients -->
    <form-bean name="listeClientsForm" type="org.elf.form.action.ListeClientsForm">
    	<form-property name="listeClients" type="java.util.ArrayList" />
    </form-bean>
    De plus j'ai changé ma variable "client" en "listeClients" ce qui donne maintenant le bean:

    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
     
    public class ListeClientsForm extends ActionForm
    {
    	private static final long serialVersionUID = 1L;
     
    	private ArrayList listeClients = new ArrayList();
     
    	public ArrayList getListeClients() {
    		return listeClients;
    	}
     
    	public void setListeClients(ArrayList client) {
    		this.listeClients = client;
    	}
    	public void reset(ActionMapping mapping, HttpServletRequest request) {
    		listeClients = new ArrayList();
    	}
    }

    Une fois ceci fait j'ai effectivement eu ma jsp qui s'affichait ! La liste étant vide j'ai rajouté le code pour la construire et c'est bon ca marche !
    Merci beaucoup

  4. #4
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Dans ce cas, il n'y a plus qu'à cliquer sur le bouton

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

Discussions similaires

  1. Cannot find bean busliste in any scope
    Par zaineb.z dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/07/2007, 18h39
  2. logic:iterate sur 2 bean differents
    Par delph1983 dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/06/2007, 12h05
  3. Réponses: 2
    Dernier message: 30/05/2007, 20h25
  4. erreur cannot find bean..(débutant)
    Par mackab dans le forum Struts 1
    Réponses: 16
    Dernier message: 11/05/2007, 17h29
  5. erreur cannot find bean under name liste
    Par spidereck dans le forum Struts 1
    Réponses: 3
    Dernier message: 20/04/2007, 10h05

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