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

JSF Java Discussion :

Comment passer une valeur d'un ManagedBean à un autre


Sujet :

JSF Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut Comment passer une valeur d'un ManagedBean à un autre
    je veux transférer une connexion d'un Managed bean à un autre, ça veut dire du "ManagedBeanO" vers le "DataBaseO", mais j'ai cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    An Error Occurred:
    Impossible de créer le bean géré «DataBaseO». Les problèmes suivants ont été détectés : - La propriété «connectedUser» du bean géré «DataBaseO» n?existe pas.
    ManagedBeanO.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
     
    .
    .
    .
     
    	private  Connection getConnection(String host, String port, String baseName, String user, String password) throws Exception 
            {
    		// Driver Oracle
    		driver = "oracle.jdbc.driver.OracleDriver";
    		// URL de la connexion
    		//url = "jdbc:oracle:thin:@"+host+":"+port+":"+baseName;
                    url = "jdbc:oracle:thin:@"+"172.30.2.21"+":"+"1521"+":"+"PC9BIDEV";
    		try {
    			Class.forName(driver);
    			// On obtient la connexion
    			connection = DriverManager.getConnection(url, "TMA_LOGICA", "TMA_LOGICA");
    			logger.info("Connection obtenue");
    			// On retourne la connexion
    			return connection;
    		} catch (SQLException e) {
    			logger.warning("Incorrect Connection Data.");
    			throw new TechnicalException("No-Connexion-Established-003");
    		}
    		catch (ClassNotFoundException e) {
    			// logger).fatal("Inexistent or Incorrect Driver.");
    			throw new Exception("Driver-Not-Exist-004");
    		} 
    	}
     
    ....
    DataBaseO.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
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package csl;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.io.IOException;
    import java.sql.SQLException; 
    import java.sql.DriverManager;
    import javax.enterprise.context.ApplicationScoped;
    import javax.faces.bean.*;
    import javax.sql.rowset.CachedRowSet;
    /**
     *
     * @author Administrateur
     */
    @ManagedBean (name="DataBaseO")
    @RequestScoped
     
    public class DataBaseO {
     
            private static Statement statement;
     
     
            private ResultSet result; 
       @ManagedProperty(value="#{ManagedBeanO.connectedUser}")      
       private Connection  connectedUser ; // +setter     
     
     
         public ResultSet getAll() throws SQLException, IOException, InstantiationException, IllegalAccessException, ClassNotFoundException     
         {         try {  
     
                       statement = connectedUser.createStatement();             
                       Statement stmt = connectedUser.createStatement();                     
                       ResultSet result = stmt.executeQuery("SELECT * FROM all_tables");             
                       CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl();             
                       crs.populate(result);             
                       return crs;         
                      }         
                 finally {             
                        connectedUser.close();         
                         }      
         } 
     
     
    }

  2. #2
    Membre averti

    Homme Profil pro
    Chargé de projets JEE
    Inscrit en
    Septembre 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé de projets JEE
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2002
    Messages : 41
    Points : 317
    Points
    317
    Par défaut
    Bonjour,

    Il y a plusieurs solutions, dépendantes de ta structure, au choix :

    1) c'est un Bean Session (SessionScoped) qui stocke la connexion. Ainsi, tu retrouveras ta connexion entre 2 pages Request.

    2) tu fais appel à un EJB (@EJB), qui s'occupe de la connexion

    3) tu transformes ta classe de connexion en singleton, et tu récupères une instance à chaque Bean où tu en as besoin.

    Il y a sans doute encore d'autres possibilités....

    Bon courage
    Michael

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    tu peux me donner un exemple sur le premier choix ? SVP

Discussions similaires

  1. Comment passer une valeur entre activités ?
    Par TheBeginer dans le forum Android
    Réponses: 2
    Dernier message: 03/12/2014, 11h22
  2. Réponses: 3
    Dernier message: 31/05/2013, 11h45
  3. Réponses: 2
    Dernier message: 05/02/2010, 16h13
  4. Réponses: 6
    Dernier message: 21/04/2007, 02h11

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