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 :

Definition de bean


Sujet :

Struts 1 Java

  1. #1
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut Definition de bean
    Bonjour, j'aimerai savoir s'il est possible de créer un bean à partir d'une variable d'un autre bean, par exemple j'ai un objet avec lequel je définit un bean dans ma jsp, lequel contient une map. Est il possible de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <bean:define id="list" name="holder" type="webapp.JobHolder"/>
    	<bean:define id="map" name="holder" property="map" />
    Aprés avoir lu le guide de struts il me semble que oui mais je voudrais m'en assurer, merci.

  2. #2
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    c'est possible, mais je crois que tu t'embrouilles avec les names et les ids.
    Bon, comme j'ai pas bien compris ton exemple, je t'en donne un autre.
    Un bean en request ou en session nommé dans celle ci beanInit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void monBean {
      private Map laMap = new HashMap();
      private String uneString = "bouh";
     
      public Map getLaMap () { return laMap;}
      public String getUneString () { return uneString; }
    }
    Le bean par lui meme, tu l'as deja, pas besoin de faire un bean:define pour le recuperer. Il s'appele beanInit et tu peux l'utiliser, par exemple, comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="beanInit" property = "uneString"/>
    bean:define pour recuperer la map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:define id="maMap" name="beanInit" property="laMap"/>
    Maintenant, dans ma JSP, j'ai donc un bean de défini qui s'appele maMap et qui contient l'attribut laMap du beanInit (qui se trouvait en request ou en session).
    Je peux donc, par exemple, iterer dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:iterate id="element" name="maMap">
     ....
    </logic:iterate>

  3. #3
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Merci sa me parait beaucoup plus clair en effet je me mélangé un peu les pinceaux avec les paramId name etc...... merci beaucoup.
    Maintenant je fais un <logic:iterate> sur une map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <logic:iterate id="joblist" name="job">
    			<tr>
    				<TD>
    					<html:link action="buildJobAction" paramId="id" paramName="joblist">
    						<bean:write name="joblist" property="key"/>
    					</html:link>
    				</TD>
    				<TD><bean:write name="joblist" property="value"/></TD>
    			</tr>
    		</logic:iterate>
    Donc avec ce code je passe une une url du type http://localhost/context/buildJobAction.do?id=....
    aprés id j'ai la clé et la valeur de ma map. Comment ne passer que l'un ou l'autre. Soit la clé ou soit la valeur. Bon c surtout d'avoir la clé qui m'intéresse mais bon. Merci pour ton aide.

  4. #4
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    Citation Envoyé par david06600
    Donc avec ce code je passe une une url du type http://localhost/context/buildJobAction.do?id=....
    aprés id j'ai la clé et la valeur de ma map. Comment ne passer que l'un ou l'autre. Soit la clé ou soit la valeur. Bon c surtout d'avoir la clé qui m'intéresse mais bon. Merci pour ton aide.
    Si tu ne veux pas la valeur, ne la mets pas :
    enleve
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TD><bean:write name="joblist" property="value"/></TD>
    Je ne suis pas sure de comprendre ce probleme

  5. #5
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Dslé je m'explique mieux, je veux afficher un tableau donc dans ma jsp. Ce tableau contient donc en colonne la clé et la valeur contenu dans ma map. Je veux qu'en cliquant sur la clé, la clé étant un lien vers une action, je puisse passé la clé en parametre a mon url. Mon url serait donc de la forme http://localhost/context/buildJobAction.do?id=clé. Actuellement l'url est de la forme http://localhost/context/buildJobAct...?id=clé%valeur. Que ffaut il que je change dans mon code pour ne passé que la clé a l'url? J'espere que j'ai réussi a etre clair.

  6. #6
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Ou est ce qu'il est faisaible et peut etre mieu de passé les valeurs, cette fois la clé et la valeur, dans une classe qui étend ActionForm?

  7. #7
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Pour en revenir a mon passage de paramètre a l'url, lorsque je fais un out.println
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(request.getParamater("id"))
    dans mon action j'ai nomJob=nomFichier.xml, qui s'affiche sur la console et moi je ne voudrais récupéré dans ma requete que la clé qui serait monJob dans ce cas la.

    Ou alors je ne sais pas si c'est possible mais récupéré dans ma requête les 2 paramètres mais séparément...La je ne peux rien faire avec sa nomJob=nomFichier.xml ce que je voudrais c'est récupérer soit la clé qui me permettrait de recherché ensuite dans ma map la valeur correspondante soit si c'est possible passé dans la requête la clé et la valeur séparement

  8. #8
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    il faut ajouter un bean qui correspond a ta clé par un bean:define et l'utiliser dans le paramName.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <logic:iterate id="joblist" name="job">
    <bean:define id="cle" name="joblist" property="key"/>
    			<tr>
    				<TD>
    					<html:link action="buildJobAction" paramId="id" paramName="cle">
    						<bean:write name="joblist" property="key"/>
    					</html:link>
    				</TD>
    				<TD><bean:write name="joblist" property="value"/></TD>
    			</tr>
    		</logic:iterate>

  9. #9
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Ben merci a toi, sa parait simple une fois qu'on a la solution, c'est exactement ce que je cherchais.
    J'aurai encore une petite question pour améliorer tout sa, parce que la je parcours ma map dans la jsp et je la parcours une deuxième fois dans l'action sa fait peut etre un peu beaucoup.
    Est ce qu'il serait possible de passer la cle et la valeur dans le requete, mais séparement?
    Ou alors je ne sais pas si c'est possible mais récupéré dans ma requête les 2 paramètres mais séparément...La je ne peux rien faire avec sa nomJob=nomFichier.xml ce que je voudrais c'est récupérer soit la clé qui me permettrait de recherché ensuite dans ma map la valeur correspondante soit si c'est possible passé dans la requête la clé et la valeur séparement
    cad que je puisse récupérer les valeurs avec deux request.getParameter("");
    Tu vois pas un moyen qui me permettrait de passé les deux valeurs ?
    Sinon c'est pas grave je referai le parcours de ma map dans l'action pour retrouve la valeur. Merci de m'avoir déja bien aidé.

  10. #10
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    je pense pas que ca soit possible en l'etat.
    le truc, ca serait d'ajouter un getter dans tes bean qui te renvoie une chaine bien comme il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String getParamUrl() {
       return key+"&value="+value;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <logic:iterate id="joblist" name="job">
       <bean:define id="params" name="joblist" property="paramUrl"/>
       <tr>
    	<TD>
    	   <html:link action="buildJobAction" paramId="id" paramName="params">
    		<bean:write name="joblist" property="key"/>
    	   </html:link>
    	</TD>
    	<TD><bean:write name="joblist" property="value"/></TD>
       </tr>
    </logic:iterate>
    Soit, c'est du bidouillage... mais bon, c'est tout ce qui me vient pour l'instant

  11. #11
    Inactif  
    Inscrit en
    Avril 2005
    Messages
    750
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 750
    Points : 498
    Points
    498
    Par défaut
    Daccord merci c'est pas grave je fais avec ma map. Merci beaucoup a toi j'ai compris pas mal de chose notement avec les paramId paramName et tag bean. Merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/08/2010, 17h17
  2. [Struts] Cannot retrieve definition for form bean
    Par Diablo_22 dans le forum Struts 1
    Réponses: 2
    Dernier message: 10/09/2009, 12h24
  3. [Integration] Overriding bean definition for beans
    Par wajdopovitch dans le forum Spring
    Réponses: 0
    Dernier message: 04/09/2009, 12h55
  4. Réponses: 5
    Dernier message: 03/07/2007, 14h06
  5. Cannot retrieve definition for form bean:
    Par Baptiste Wicht dans le forum Struts 1
    Réponses: 11
    Dernier message: 10/10/2006, 19h27

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