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

Servlets/JSP Java Discussion :

Interroger les valeur d1 [ javabean ] avec une [ servlet ]


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Interroger les valeur d1 [ javabean ] avec une [ servlet ]
    Regardez la fin du post, il concerne la consultation d'un javabean à partir d'une servlet java.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    En fait tu te trompes

    dans ta jsp tu mets comme id: id_bean

    Et dans ta servlet tu recherche l'attribut : idbean

    Donc tu te ramasses un NullPointerException

    Bonne chance
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut appeler un bean à partir d'une classe java.
    Non non non, le problème viens pas de la syntaxe, j'ai créé rapidement cet exemple pour la demonstration.

    Mon problème c'est surtout comment faire pour appeler un bean à partir d'une classe java?
    Comment récupérer les valeurs qui ont été instanciées.?

    Dans ma classe (ClassX) j'ai essayé de créer une instance de TestServlet

    ex :
    TestServlet ObjTest = new TestServlet;
    this.nomclassx = ObjTest.nom;

    je peux actuellement récupérer les valeurs de mes javabeans dans toutes mes pages JSP grace à la portée SESSION.
    Mais c'est dans une classe indépendante que je souhaite récupérer la valeur d'une propriété de mon bean. comment faire ? suis je sur la bonne piste ?

    Merci quand même.

  4. #4
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Pourquoi tu n'instancies pas ta classe java dans la servlet en lui passant ton bean

    exemple dans la servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TaClasse taClasse = new TaClasse(tonBean);
    et dans le constructeur de ta classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private TonBean bean;
     
    public TaClasse(TonBean bean)
    {
       this.bean = bean;
    }
    Ensuite si tu souhaites utiliser cette classe tout au long de la session tu l'ajoutes en attribute.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.setAttribute("taClasse",taClasse);
    Ou alors tu dois passer par un singleton au niveau session et non au niveau VM. Mais là tu m'en demande de trop car je ne sais pas comment implémenter ce genre de design.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut [ servlet ] [ javabean ]
    ...

  6. #6
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Saurais-tu séparer ton code car cela me parait brouillon.
    Montre moi tes jsp, servlets, beans et classes java complètes séparément.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut code
    ok je te prépare ça.

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut javabeans dans un dossier include\beans
    javabean : dossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <jsp:useBean id="dossier" type="com.Dossier" scope="session" class="com.Dossier">
    </jsp:useBean>
    javabean : maclasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <jsp:useBean id="maclasse" type="com.MaClasse" scope="session" class="com.MaClasse">
    </jsp:useBean>

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut Ma classe dossier
    La classe Dossier (code non exhaustif) : elle respecte la syntaxe javabean
    (get, set, is)

    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 Dossier implements Serializable 
    { 
       private int dos_id; 
       private String dos_nom; 
       private String dos_prenom; 
     
       //Constructeur de la classe dossier. 
       public Dossier (){ 
       } 
       //Accesseurs. 
       public int getDos_id () 
       { 
          return this.dos_id; 
       } 
       public String getDos_nom() 
       { 
          return this.dos_nom; 
       } 
       public String getDos_prenom() 
       { 
          return this.dos_prenom; 
       } 
       //Mutateurs. 
       public void setDos_id (int dos_id) 
       { 
             this.dos_id = dos_id; 
       } 
     
       public void setDos_nom(String dos_nom) 
       { 
          if(dos_nom!=null && dos_nom!="") 
             this.dos_nom = dos_nom; 
       } 
    }

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut MaClasse
    MaClasse respecte aussi la syntaxe javabeans elle est dans le même package que Dossier.


    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
    public class MaClasse { 
    private String nom; 
    private String nom2="titi"; 
     
    //constructeur 
    MaClasse(Dossier monbean) 
    { 
       this.nom = monbean.getNom(); 
    } 
    public String getNom() 
    { 
       return this.nom; 
    } 
    //ici je souhaite comparer le nom du dossier en cours et celui de MaClasse 
    public void Comparaison_nom(nom1, nom2) 
    { 
       .... 
    } 
    ... 
    }

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut TestServlet
    C'est à partir de cette servlet que je souhaite récupérer l'instance en cours de mon bean dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package com.modules.*; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
     
    public class TestServlet extends HttpServlet 
    { 
      public void service(HttpServletRequest req, HttpServletResponse res) throws  
      ServletException, IOException { 
         HttpSession session = req.getSession(); 
         com.Dossier myBean = (com.Dossier) session.getAttribute("dossier"); 
         MaClasse ObjClass = new MaClasse(myBean); 
      } 
     
    }

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut ma page d'index
    Cette page inclue les javabeans
    Instancie la classe dossier et associe à la propriété nom = toto
    L'affichage de la propriété nom de MaClasse est ici nécéssaire uniquement pour le test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ include file="bean/dossier.jsp" %>    
    <%@ include file="bean/maclasse.jsp" %>  
    //Création du dossier. 
    dossier.setDos_nom("toto"); 
    //Appel de la servlet 
    new TestServlet();    
     
    //Afficher la propriété nom de MaClasse 
    out.println("<hr>"); 
    out.println(maclasse.getNom()); 
    out.println("<hr>");

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut conclusion
    Je devrais logiquement avoir à l'affichage "toto" non? Je reste perplexe

  14. #14
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Je comprends pas très ta manière de travailler.

    Tu instancies une classe dans ta jsp et ensuite tu la réinstancies dans ta servlet.
    Deuxièmement, je comprends pas pourquoi tu souhaites comparer deux classes. :
    Vu que le bean est propre à la session je n'en vois pas l'interêt

    Voilà ce que moi je propose

    Tu crées un jsp avec un form que tu soumets à ta servlet. J'écris le code approximativement, cela se peut qu'il y ait des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <jsp:useBean id="dossier" type="com.Dossier" scope="session" class="com.Dossier">
    </jsp:useBean>
    <form method="POST" action="<%=response.encodeRedirectURL("taServlet")%>">
    <input type="submit" value="submit">
    </form>
    Ensuite tu récupères le bean dans ta servlet.

    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
    package com.modules.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class TestServlet extends HttpServlet
    {
      public void service(HttpServletRequest req, HttpServletResponse res) throws 
      ServletException, IOException {
     
      }
     
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    {
    HttpSession session = requset.getSession();
         com.Dossier myBean = (com.Dossier) session.getAttribute("dossier");
         MaClasse ObjClass = new MaClasse(myBean);
     
    }
     
    }
    Et ensuite tu peux réafficher ce que tu veux dans ta deuxième jsp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <jsp:useBean id="dossier" type="com.Dossier" scope="session" class="com.Dossier"/>
    <jsp:getProperty name="dossier" property="dos_nom"/>
    Voilà
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  15. #15
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut Re: ma page d'index
    Citation Envoyé par jmeclipse
    Cette page inclue les javabeans
    Instancie la classe dossier et associe à la propriété nom = toto
    L'affichage de la propriété nom de MaClasse est ici nécéssaire uniquement pour le test.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ include file="bean/dossier.jsp" %>    
    <%@ include file="bean/maclasse.jsp" %>  
    //Création du dossier. 
    dossier.setDos_nom("toto"); 
    //Appel de la servlet 
    new TestServlet();    
     
    //Afficher la propriété nom de MaClasse 
    out.println("<hr>"); 
    out.println(maclasse.getNom()); 
    out.println("<hr>");
    Je ne suis pas sur .. lorsque tu intancie ta servlet ... ta methode service() de TestServlet() n'est pas appelé... donc ta classe maClasse n'est pas initialisé avec ton bean Dossier...
    Pour verifier met une trace dans le constructeur de ta classe maClasse ..
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  16. #16
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    En effet, petite erreur de compréhension du modèle des Servlet, seul le container web peu instancier un servlet et le mettre à disposition.
    On n'accède jamais à un servlet par une référence mais par une URL.
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  17. #17
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Citation Envoyé par Alwin
    En effet, petite erreur de compréhension du modèle des Servlet, seul le container web peu instancier un servlet et le mettre à disposition.
    On n'accède jamais à un servlet par une référence mais par une URL.
    Ah oui en effet j'avais pas remarqué cette erreur
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  18. #18
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut comparer la valeur d'un bean dans une classe
    Tu as raison le bean représente ma session.

    A force de chercher une solution, j'ai dévié de mon objectif premier : utiliser dans le traitement d'une classe la propriété d'un javabean.

    Je souhaite interroger le bean à partir de ma classe MaClasse; cela n'est possible apparament qu'au travers une servlet. C'est pour ça que j'essaye desepérement d'utiliser une servlet pour arriver à mes fins.

    Et tu as raison sur "seul le container web peu instancier un servlet et le mettre à disposition"

    Alors que faire ? comment appeler cette servlet?

  19. #19
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par Alwin
    En effet, petite erreur de compréhension du modèle des Servlet, seul le container web peu instancier un servlet et le mettre à disposition.
    On n'accède jamais à un servlet par une référence mais par une URL.
    C'est bien ce qui me semblait..
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  20. #20
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Points : 21
    Points
    21
    Par défaut dommage
    Il est donc impossible de récupérer la valeur d'un javabean dans le code d'une classe?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/07/2014, 16h57
  2. Réponses: 9
    Dernier message: 29/08/2008, 14h35
  3. envoyer les valeur d'un formulaire à une servlet
    Par samia13 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/04/2007, 00h19
  4. [Servlet]probleme avec une servlet
    Par adilou1981 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 15/06/2005, 10h17
  5. Réponses: 2
    Dernier message: 29/03/2004, 13h44

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