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 :

Transmission d'un objet jsp vers mon ActionForm


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut Transmission d'un objet jsp vers mon ActionForm
    Bonjour,

    J'aimerais savoir s'il est possible de transmettre un objet créé en jsp (donc en java encapsulé par <% %>) avec struts vers mon ActionForm.

    Voilà mon souci :
    je fais un serveur de CV et j'ai besoin que l'utilisateur sélectionne ses compétences dans une liste (via un select / option) mais il devra en plus sélectionné son niveau pour la compétence sélectionnée.

    Je passe donc, pour assurer ce dernier point, par un ensemble de 3 fonction javascript permettant :
    • d'ajouter une compétence : cela revient à rajouter dynamiquement sur la droite de la page la compétence et une seconde liste déroulante (select/option) pour la sélection du niveau (Débutant, intermédiaire, avancé...)
    • de supprimer une compétence
    • de changer de niveau dans la compétence


    Pour la liste déroulante du niveau, je passe par un html:select en struts pour chaque compétence à l'aide d'un compteur que je concatène à chaque property de mon html:select.

    Mais pour la liste des compétences, étant donné que cela ne correspond pas à ce qu'il y a de sélectionné dans ma liste déroulante, mais aux attributs réellement ajouter via mon javascript, je passe par une déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <%@ page import="java.util.*" %>
            <%
                /* 
                   On crée une liste de compétences afin de la rebalancer à 
                   l'ActionForm à la fin sous la forme d'un hidden
                 */
                List<String> competences = new ArrayList();
                int compt = 0; //compteur de niveaux
            %>
    Et dans mon javascript, je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    '<% competences.add(' + tableau_connaissance[i] + ') %>
    quand j'ai besoin...

    et donc à la fin du formulaire je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <html:hidden property="competences" value="<%= competences %>"/>
    Et là, le problème c'est que je ne sais pas si je peux passer mon objet "competences" tel quel dans le value du html:hidden.
    j'aimerais en fait le récupérer ensuite dans mon ActionForm sous une collection afin de traiter l'ensemble des compétences sélectionnées (comme un select multiple).

    Voilà, je ne sais pas si je suis bien clair, n'hésitez pas à m'en demander d'avantage car là je sèche...

    Merci d'avance pour votre aide !

  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
    Citation Envoyé par Ryo_san Voir le message
    Et là, le problème c'est que je ne sais pas si je peux passer mon objet "competences" tel quel dans le value du html:hidden.
    Non, ce n'est pas possible car l'attribut property du tag html:hidden doit être de type String.

    Par contre, si par exemple ton ActionForm est dans le scope session, tu peux très bien la récupérer et mettre à jour la propriété competences comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%
       TonActionForm tonActionForm = (TonActionForm) session.getAttribute("nomDuFormBean") ;
       tonActionForm.setCompetences (competences ) ;
    %>
    Mais je trouve quand même dommage d'avoir des scriptlets dans les jsp quand on utilise Struts.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut
    Par contre, si par exemple ton ActionForm est dans le scope session, tu peux très bien la récupérer et mettre à jour la propriété competences comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%
       TonActionForm tonActionForm = (TonActionForm) session.getAttribute("nomDuFormBean") ;
       tonActionForm.setCompetences (competences ) ;
    %>
    Donc si je comprends bien, tu me proposes de mettre à jour mon ActionForm de façon dynamique, c'est à dire de faire mon set de ma liste competences directement dans le jsp ?

    De plus c'est quoi "nomDuFormBean", le nom de ma classe ActionForm ?
    Et une dernière chose, le bean doit bien être dans le scope session ? Comment faire (struts-config ??) ?

    Mais je trouve quand même dommage d'avoir des scriptlets dans les jsp quand on utilise Struts.
    Je n'ai pas d'autres solutions... Comment pourrais-je récupérer mes compétences puisqu'elles sont traitées en javascript côté client !

    En tout cas merci beaucoup pour ton aide, c'est rapide et ça m'aide beaucoup !! C'est très gentil

  4. #4
    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
    nomDuFormBean correspond à la valeur que tu as codé dans l'attribut name de la balise form-bean pour ton ActionForm dans le struts-config.xml.

    Le scope de l'ActionForm correspond à celui que tu as spécifié dans le mapping de l'Action dans le struts-config.xml. Si tu ne l'as pas précisé, cela signifie qu'il est égal à session car c'est la valeur par défaut.

    Sinon, en utilisant Struts-Layout, je pense que tu aurais trouvé une réponse à ton besoin.
    Mais encore faut-il avoir le temps de se plonger dedans.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 43
    Par défaut
    Je te remercie pour toutes ces précisions ! C'est très gentil de ta part de m'aider.

    Concernant struts-layout, cela a l'air très pratique en effet, je ne connaissais pas... Maintenant comme tu le dis, la contrainte temps est à prendre en compte car je dois rendre mon projet à la fin de la semaine !

    Sinon j'ai eu une autre idée : pourquoi ne pas utiliser DOM pour envoyer la liste des compétences ??

    En revanche mes connaissances sont très limitées également sur DOM...

  6. #6
    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
    As-tu essayé ce que je t'ai proposé ? parce que je pense que c'est ce qu'il y a de plus rapide à mettre en oeuvre.

Discussions similaires

  1. Transfère objet JSP vers Servlet
    Par yakuzayang dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/02/2011, 15h04
  2. batch-problème pour pointer vers mon log
    Par af_airone dans le forum Windows
    Réponses: 2
    Dernier message: 20/04/2005, 08h58
  3. Transfert d'un objet d'une JSP vers une Servlet
    Par biohazard dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/06/2004, 16h51
  4. Transmission d'un objet crée dans une fonction
    Par EvilAngel dans le forum ASP
    Réponses: 2
    Dernier message: 10/05/2004, 20h19
  5. Réponses: 6
    Dernier message: 12/02/2004, 21h55

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