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 :

bean à l'interieur d'un autre bean


Sujet :

Struts 1 Java

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut bean à l'interieur d'un autre bean


    j'ai envie de mettre un <bean:write> dans un <bean :redirect> de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:redirect href=
            "<bean:write name="ConsignesPermanentes" property="cheminConsignesPermanentes"/>"
               style="color:#000000" target="_self"/>
    mais ça ne marche pas, quelqu'un sait comment il faut faire ou peut me donner la bonne syntaxe.

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Essaye ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:redirect href='<bean:write name="ConsignesPermanentes" property="cheminConsignesPermanentes"/>' style="color:#000000" target="_self"/>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:redirect href="${ConsignesPermanentes.cheminConsignesPermanentes}" style="color:#000000" target="_self"/>
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    t'es sur de la syntaxe car ça ne marche pas avec tes deux propositions. J'ai toujours une erreur de syntaxe dans ma page JSP.

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Non je ne suis pas sûr, je m'embrouille souvent entre le struts, le JSTL...etc

    Cela dit, si tu es en JSP 2.0, la deuxième solution devrait fonctionner.

    Bon essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:redirect name="ConsignesPermanentes.cheminConsignesPermanentes">
    Et sinon fait voir l'erreur de syntaxe.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    oui ça va avec ta deuxième solution. Il ne me fait plus sortir une erreur de syntaxe par contre j'ai l'erreur suivante :

    javax.servlet.ServletException: Cannot find bean ConsignesPermanentes.cheminConsignesPermanentes in any scope

  6. #6
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Ton bean n'est probablement pas présent en scope session ou request...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    si c'est en mode request : maintenant et avec ce cose il me sort cette erreur :

    le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <logic:iterate id="ConsignesPermanentes" name="ConsignesPermanentes" property="contenuConsignesPermanentes" >  
            <logic:redirect href="cheminConsignesPermanentes"/>
       </logic:iterate>
    l'erreur :

    type Rapport d'état

    message /WebApplication2/cheminConsignesPermanentes

    description La ressource demandée (/WebApplication2/cheminConsignesPermanentes) n'est pas disponible.

  8. #8
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    on ne peut pas itérer sur des redirects, ce sont des liens que tu veux afficher n'est-ce pas?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    en fait j'ai tout le temps un seul lien dans ma base, je fais un logic:iterate pour pouvoir recuperer de la base. C'est faux c'est ça ???

  10. #10
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Ben si t'en as qu'un seul, c'est déjà ça mais je ne comprends pas pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <logic:redirect name="ConsignesPermanentes.cheminConsignesPermanentes" />
    ne fonctionnerait pas, sauf qu'en fait j'avais oublié de mettre le '/' à la fin
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  11. #11
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    En fait j'ai sur ma page principale un lien vers un fichier .doc. Ce que je veux faire c'est de permettre à l'utilisateur de changer le chemin de son fichier quand il veut sans avoir à modifier dans mon code.
    Donc j'ai fait un formulaire qui permet à l'utilisateur d'explorer et de mettre le chemin du fichier. le chemin entrée par l'utilisateur est stocké dans une table dans ma base. Lorsque l'utilisateur change le chemin de son fichier alors l'ancien est écrasé dans la base et le nouveau est rajouté de telle sorte à n'avoir qu'une seule ligne dans ma table tout le temps.
    Maintenant j'ai envie et avec logic:redirect etre redirigé tout le temps vers ce fichier et dont le chemin ou l'url est srocké dans la base. Pour cela je fais un logic:iterate pour le recuperer et je donne ce que je récupère à logic:redirect pour que je sois redirigé vers ce fichier.
    Voila

    Maintenant et en faisant ce que tu m'a dit il me ressort l'erreur : Cannot find bean ConsignesPermanentes.cheminConsignesPermanentes in any scope

    je ne vois pas comment corriger cette erreur ?

  12. #12
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    T'as essayé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:redirect href=
            "<%= ConsignesPermanentes.getCheminConsignesPermanentes %>"
               style="color:#000000" target="_self"/>
    en oubliant pas de bean:define pour ConsignesPermanentes ainsi que les getter/setter ?

  13. #13
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bon pour pouvoir itérer sur un objet il faut qu'il soit une liste style ArrayList ou autre.
    Il faudrait que tu montres comment tu fait pour mettre ConsignesPermanentes dans le scope request ou session.

    Si tu ne fais pas, par exemple, un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("ConsignesPermanentes", ConsignesPermanentes);
    quelque part dans une Action, tu auras du mal à le récupérer dans la JSP...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  14. #14
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Si, je fais bien dans une classe LancerConsignesPermanentesAction.jave ceci :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class LancerConsignesPermanentesAction extends Action{
        
        /** Creates a new instance of LancerConsignesPermanentesAction */
        public LancerConsignesPermanentesAction() {
        }
        
        
          public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
                HttpServletResponse response)throws Exception{
                    
              
               DataSource ds = getDataSource(request, "enidb");
                Connection cnx=ds.getConnection();
                
                ConsignesPermanentesContenu mesConsignesPermanentes = new ConsignesPermanentesContenu();
                
                mesConsignesPermanentes.recupMeteoContenuFromDataBase(cnx);
                
                request.setAttribute("ConsignesPermanentes",mesConsignesPermanentes);
                
                
              ///////////////////////////////////ici l'authentification
       
                String login = request.getParameter("login");
                System.out.println("j'affiche bien le login");
                System.out.println(login);
    
                Personne monPersonnel = new Personne();
                monPersonnel.setLoginPersonne(login);
    
                return monPersonnel.authentifiePersonnelAdmiAndRedacteur(mapping,cnx);
                
          }
    }
    en fait j'ai corrigé dans mon .JSP et j'ai fait ceci :
    <logic:redirect name ="ConsignesPermanentes" property ="cheminConsignesPermanentes" />

    maintenant il me dit comme erreur :
    javax.servlet.ServletException: No getter method for property cheminConsignesPermanentes of bean ConsignesPermanentes

    je ne comprend pas car dans mon fichier ConsignesPermanentes.java j'ai bien des getters et des setters,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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    public class ConsignesPermanentes implements Serializable{
     
     
        private String nomConsignesPermanentes = null;
        private String cheminConsignesPermanentes = null;
     
     
        /** Creates a new instance of ConsignesPermanentes */
        public ConsignesPermanentes(String nomConsignesPermanente){//, String cheminConsignesPermanentes){
         //   this.nomConsignesPermanentes = nomConsignesPermanentes;
            this.cheminConsignesPermanentes = cheminConsignesPermanentes;
        }
     
         public ConsignesPermanentes(){}
     
        public String getNomConsignesPermanentes() {
            return nomConsignesPermanentes;
        }
     
        public void setNomConsignesPermanentes(String nomConsignesPermanentes) {
            this.nomConsignesPermanentes = nomConsignesPermanentes;
        }
     
        public String getCheminConsignesPermanentes() {
            return cheminConsignesPermanentes;
        }
     
        public void setCheminConsignesPermanentes(String cheminConsignesPermanentes) {
            this.cheminConsignesPermanentes = cheminConsignesPermanentes;
        }
     
        /**
         * Methode d'insertiond'un nouveau chemin dans la base pour les consignes permanentes
         */
     
     public ActionForward insertNouvelEtat(ActionMapping mapping, Connection cnx) throws SQLException{
            PreparedStatement pstmt;
            try{
     
                pstmt=cnx.prepareStatement("delete from consignespermanentes");
                pstmt=cnx.prepareStatement("insert into consignespermanentes ( chemin) values (?)");
               // pstmt.setString(1, "Permanent Instructions");
                 pstmt.setString(1, cheminConsignesPermanentes);
                pstmt.executeUpdate();
                cnx.commit();
                return mapping.findForward("success");
            }catch(Exception e){
            cnx.rollback();
            return mapping.findForward("erreur");
            }finally{
                cnx.close();
            }
        }
     
     
     
        /**
       *  Methode de suppression : cette methode supprime tout ce qui se trouve dans la table meteo.
       */
       public void deleteAncienEtatMeteo(ActionMapping mapping, Connection cnx) throws SQLException{
            PreparedStatement pstmt;
            try{
                pstmt=cnx.prepareStatement("delete from consignespermanentes");
                pstmt.executeUpdate();
                cnx.commit();
                }catch(Exception e){
            cnx.rollback();
            System.out.println("Probleme delete consignes permanentes");       }
        }
    }

  15. #15
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par SrK
    T'as essayé ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <logic:redirect href=
            "<%= ConsignesPermanentes.getCheminConsignesPermanentes %>"
               style="color:#000000" target="_self"/>
    en oubliant pas de bean:define pour ConsignesPermanentes ainsi que les getter/setter ?
    ce que tu dis est faux syntaxiquement. Pour les getters et setters j'ai compris mais ce bean:define ça sert à quoi ?

  16. #16
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    il sert a aller chercher ce que tu as placé préalablement dans la requete pour le rendre visible dans ta jsp.

  17. #17
    zev
    zev est déconnecté
    Membre expérimenté
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Par défaut
    Les imbrications de tags libs c moyen.
    Je le verrai comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <% 
    String toto = "<bean:write name="ConsignesPermanentes" property="cheminConsignesPermanentes"/>";
    %>
     
    <logic:redirect href=<%=toto%> style="color:#000000" target="_self"/>

  18. #18
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    Citation Envoyé par zev
    Les imbrications de tags libs c moyen.
    Je le verrai comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <% 
    String toto = "<bean:write name="ConsignesPermanentes" property="cheminConsignesPermanentes"/>";
    %>
     
    <logic:redirect href=<%=toto%> style="color:#000000" target="_self"/>

    Il y a une erreur de syntaxe à cause de : href= <%=toto%>

    t'es sur de la syntaxe ???

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    525
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 525
    Par défaut
    oui la syntaxe ça sera plutot ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <% 
    String toto = "<bean:write name=\"ConsignesPermanentes\" property=\"cheminConsignesPermanentes\"/>";
    %>
     
    <logic:redirect href="<%=toto%>" />
    sauf que maintenant il me sort une erreur :
    type Rapport d'état

    message /WebApplication2/<bean:write%20name="ConsignesPermanentes"%20property="cheminConsignesPermanentes"/>

    description La ressource demandée (/WebApplication2/<bean:write%20name="ConsignesPermanentes"%20property="cheminConsignesPermanentes"/>) n'est pas disponible.


  20. #20
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    est ce que ton bean:write tout seul dans la jsp marche ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/10/2009, 00h25
  2. recuperation de bean d un applicationContext à un autre
    Par *alexandre* dans le forum Spring
    Réponses: 9
    Dernier message: 05/11/2008, 09h42
  3. passage paramétre d'un bean à un autre bean
    Par pipo7610 dans le forum JSF
    Réponses: 8
    Dernier message: 03/09/2008, 13h40
  4. Autres beans que les form beans
    Par jeyce dans le forum Struts 1
    Réponses: 3
    Dernier message: 12/04/2007, 15h58
  5. Réponses: 1
    Dernier message: 20/10/2006, 09h43

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