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

Langage Java Discussion :

Problème contructeur portée variable


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Par défaut Problème contructeur portée variable
    Bonjour,

    J'ai posté ce sujet dans le Forum JSF mais personne n'a su me repondre; peut être ici j'aurais plus de retours. Je pense que c'est un problème de variable dans un constructeur Java.

    J'ai intégré dans mon projet un composant de MyFaces "datatable" qui est Paged and Sortable.

    J'ai ce code dans App.java:
    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
    ....autres declaration avant...
         private DataModel data;
         private ResultSet rs=null;
     
         public App() {
             super(null);
     
             List headerList = new ArrayList();
             headerList.add(new ColumnHeader("Symbole","60",false));
             headerList.add(new ColumnHeader("Sold","100",true));
             columnHeaders = new ListDataModel(headerList);
     
           try{
     
           String url="jdbc:oracle:thin:@192.168.100.34:1521:ORCL";
           DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
           Connection conn = DriverManager.getConnection(url,"user","pass");
     
     
           Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
     
           String mydate_datalist = getEvdat_app();      
           rs=stmt.executeQuery("SELECT fonction('"+mydate_datalist+"') RES FROM PVMCA WHERE id=4");    
     
           }
           catch ( SQLException e ) {.....}     
     
           List rowList = new ArrayList();
           if (rs.next())
           {
              List colList = new ArrayList();
     
              String tmpSym = rs.getString("sym");                              
              colList.add(tmpSym);
              rowList.add(colList); 
           }
           data = new ListDataModel(rowList);                    
         }
     
        public DataModel getData() throws SQLException {
            sort(getSort(), isAscending());
            return data;
        }
     
        void setData(DataModel datamodel)
        {
            System.out.println("preserved datamodel updated");
        }
    Bon je re-explique l'essentiel. J'ai une variable mydate_data qui m'est necessaire. Je veux récuperer avec cette variable des données que l'utilisateur rentre dans la même page (une date ici recupérée avec une autre fonction de la même page) et l'utiliser dans le constructeur pour faire la requete SQL. Le souci est que ce champ ou l'utilisateur doit rentrer une date (par defaut la date du jour) est construit APRES le contructeur....donc ma variable me renvoie NULLPOINTEREXCEPTION. Comment puis je faire pour que le constructeur aille chercher une autre fonction dans la même page ?

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Vu qu'ici tu n'es plus dans le forum JSF, mais dans le forum Langage, pourrais-tu extraire de ta question le charabia JSF pour ne conserver que la partie Langage de façon à ce que nous puissions comprendre ? Ne conserve que ce qui concerne spéfiquement le ou les constructeurs. Merci

  3. #3
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    +1

    et aussi essaie de faire des paragraphes à ton roman, parce que là c'est dur de lire et d'en retirer les informations essentielles ...

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Bon... je vais reformuler, pour voir...

    1. Tu as une variable qui existe et qui est construite, mais dont certains attributs sont vides, et qui seront renseignés à l'aide d'informations entrées par l'utilisateur, c'est à dire le visiteur d'une page web.
    2. Tu veux passer cette variable non encore complètement renseignée à un constructeur d'une autre classe.
    3. Tu y arrives.
    4. Mais manque de chance, lorsque tu essaies d'utiliser les attributs vides, tu as un NullPointerException..

    ... donc tout est normal, non ?...

    Donc j'ai certainement mal compris encore. À partir de cette reformulation, peux-tu me dire ce qui ne correspond pas à ton cas ?

  5. #5
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par mihaestii Voir le message
    Comment puis je faire pour que le constructeur aille chercher une autre fonction dans la même page ?
    et bien il suffit de l'appeler ... je pense que j'ai pas trop compris là ...

    Ta variable qui est nulle c'est mydate_datalist () ? Si j'ai bien compris, cette valeur sera toujours nulle, puisque personne ne l'a saisie au moment de l'appel du constructeur ? N'est ce pas plutôt un problème de conception ?

    Moi je dirais 3 possibilités (dans la mesure où j'ai compris le pb) :
    1. tu crées ton objet mais tu le met à jour après que l'utilisateur ait fait la saisie
    2. tu crées ton objet après que l'utilisateur ait fait la saisie
    3. tu utilises une valeur par défaut


    (perso je pencherais pour la 2 ...)


    Petite remarque, tu comptes passer en architecture 3 tiers ?? Tu devrais ...

Discussions similaires

  1. Problème de portée de variables (VBS)
    Par befast dans le forum Windows
    Réponses: 0
    Dernier message: 18/09/2007, 09h40
  2. [Mail] problème de portée de variables
    Par xclam dans le forum Langage
    Réponses: 2
    Dernier message: 12/04/2007, 09h35
  3. Problème de Portée de Variable
    Par Julien_C++ dans le forum C++
    Réponses: 7
    Dernier message: 18/09/2006, 10h13
  4. [VBA-E] Problème de portée de variable [débutant]
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/03/2006, 18h28
  5. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34

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