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 :

Afficher le résultat d'une requête dans combo


Sujet :

JSF Java

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut Afficher le résultat d'une requête dans combo
    Bonjour,

    j'ai une page bean

    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
    @ManagedBean (name="DataBaseO")
    @ApplicationScoped 
    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();         
                         }      
         } 
     
     
    }
    et dans une page.xhtml j'ai un selectOneMenu et eje veux afficher le résultat de la requête dans ce combo box.

    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(result.next()){
        maListe.add(new SelectItem(result.getString(1),result.getString(1));
    }
    avec maListe un ArrayList<String> qui doit être déclaré. Et la récupération des valeurs insérées se fait au niveau de la page JSF : (value="#{dataBaseO.maListe}")

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Par défaut
    Dans ma page jsf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                <h:selectOneMenu value="#{ManagedBeanO.maValeur}" style="width: 203px; ">
                        <f:selectItems value="#{ManagedBeanO.mesElements}"/>
                    </h:selectOneMenu>
    dans mon Bean :

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package csl;
     
    import java.io.IOException;
    import java.sql.*;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    //import org.apache.log4j.Logger;
    import java.util.logging.Logger;
    import javax.faces.bean.ApplicationScoped;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import javax.faces.model.SelectItem;
    import javax.sql.rowset.CachedRowSet;
     
    /**
     *
     * @author  */
    @ManagedBean (name="ManagedBeanO")
    @ApplicationScoped 
    public class ManagedBeanO{
     
            private List<SelectItem> mesElements = null; 
            private static Statement statement; 
            private  String maValeur;
    	private Connection connectedUser;
    	private  String host;
    	private  String port;
    	private  String baseName, user, mdp, driver, url;
    	private  Connection connection=null;
    	private String Orac= "Connect";
    	private  final static Logger logger = Logger.getLogger(ManagedBeanO.class.getName());
     
     
            public String getMaValeur() {
            return maValeur;
            }
     
            public void setMaValeur(String maValeur) {
                this.maValeur = maValeur;
            }
     
    	public  String getHost() {
    		return host;
    	}
    	public  void setHost(String host) {
    		this.host = host;
    	}
    	public  String getPort() {
    		return port;
    	}
    	public  void setPort(String port) {
    		this.port = port;
    	}
    	public  String getBaseName() {
    		return baseName;
    	}
    	public  void setBaseName(String baseName) {
    		this.baseName = baseName;
    	}
    	public  String getUser() {
    		return user;
    	}
    	public  void setUser(String user) {
    		this.user = user;
    	}
    	public  String getMdp() {
    		return mdp;
    	}
    	public  void setMdp(String mdp) {
    		this.mdp = mdp;
    	}
    	public  String getDriver() {
    		return driver;
    	}
    	public  void setDriver(String driver) {
    		this.driver = driver;
    	}
    	public  String getUrl() {
    		return url;
    	}
    	public  void setUrl(String url) {
    		this.url = url;
    	}
    	public  Connection getConnection() {
    		return connection;
    	}
    	public  void setConnection(Connection connection) {
    		this.connection = connection;
    	}
     
            public String navigation () throws Exception
            {
             return Orac;
            }
    	  public String process() throws Exception
    	  {
                  if(connectedUser == null) {
    		        connectedUser = getConnection(host,port,baseName,user,mdp );
    		    }
                 return Orac;
    	  } 
    	public Connection getConnectedUser() throws Exception {
     
    	    if(connectedUser == null) {
    		        connectedUser = getConnection(host,port,baseName,user,mdp );
    		    }
    		    return connectedUser ;
     
    	}
    	public void setConnectedUser(Connection connectedUser) {
    		this.connectedUser = connectedUser;
    	}
    	/**
             * Gets connection
             * @param host host
             * @param port port number
             * @param baseName base name
             * @param user user name
             * @param password password
             * @return connection
             * @throws TechnicalException
             */
    	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");
    		} 
    	}
     
             public Iterable<String> getAll() 
         {         try {  
     
                       ArrayList<String> unelist = new ArrayList();
                try {
                    statement = connectedUser.createStatement();
                } catch (SQLException ex) {
                    Logger.getLogger(ManagedBeanO.class.getName()).log(Level.SEVERE, null, ex);
                }
                       Statement stmt = null;                     
                try {
                    stmt = connectedUser.createStatement();
                } catch (SQLException ex) {
                    Logger.getLogger(ManagedBeanO.class.getName()).log(Level.SEVERE, null, ex);
                }
                       ResultSet result = null;  
                try {
                    result = stmt.executeQuery("SELECT TABLE_NAME FROM all_tables");
                } catch (SQLException ex) {
                    Logger.getLogger(ManagedBeanO.class.getName()).log(Level.SEVERE, null, ex);
                }
                try {
                    while(result.next())
                    {
                     String name=result.getString("TABLE_NAME").toString();
                     unelist.add(name);
                    }
                } catch (SQLException ex) {
                    Logger.getLogger(ManagedBeanO.class.getName()).log(Level.SEVERE, null, ex);
                }
                      // CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl();             
                       //crs.populate(result);             
                       return (List)unelist;         
                      }         
                 finally {             
                try {
                    connectedUser.close();
                } catch (SQLException ex) {
                    Logger.getLogger(ManagedBeanO.class.getName()).log(Level.SEVERE, null, ex);
                }
                         }   
         }
     
         public List<SelectItem> getMesElements()
         { 
                if (mesElements == null) { 
                mesElements = new ArrayList<SelectItem>(); 
                for (String val : getAll()) 
                { 
                mesElements.add(new SelectItem(val)); 
                } 
     
            } 
                return mesElements; 
     
     
         } 
     
     
     
    }

    et j'ai cette erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.NullPointerException
    SVP aidez moi à remplir mon combo box

  4. #4
    Membre expérimenté Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Par défaut
    Cette erreur est due au fait que lors du démarrage de la page JSF, la liste "mesElements" a une valeur nulle. Il faut l'instancier avant le chargement de la page et ça devrait marcher normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private List<SelectItem> mesElements =new List<SelectItem>(10)

Discussions similaires

  1. [MySQL] Afficher le résultat d'une requête dans une autre page
    Par mohamed2006 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/02/2008, 21h02
  2. Réponses: 1
    Dernier message: 07/03/2007, 11h05
  3. [MySQL] Afficher le résultat d'une requête dans un tableau
    Par magobouli dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/02/2007, 14h41
  4. [SQL] Est-il possible d'afficher le résultat d'une requête dans un cadre
    Par dessinateurttuyen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/07/2006, 17h52
  5. Réponses: 11
    Dernier message: 20/06/2006, 11h10

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