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 :

Deux méthodes imbriquées


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Deux méthodes imbriquées
    Bonjour,

    J'ai une page bean intitulé SelectTablebean et qui contien une méthode columnsTables (String Table )
    tableStringSource () --> qui retourne une liste de string

    je veux faire comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p:selectOneMenu value="" >
                          <f:selectItems value="#{SelectTableBean.columnsTables(#{SelectTableBean.tablesStringSource.get(i-1)})}" />
                        </p:selectOneMenu>
    mais j'ai une erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Encountred "{" at line 1 column 34
    was excpecting one of :
    "."
    ")"
     
    ..............
    je suis bloqué, pouvez vous m'aider SVP

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Salut,

    il faut que tu écrives ce genre de choses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <f:selectItems value="#{SelectTableBean.columnsTables(SelectTableBean.tablesStringSource.get(i-1))}" />
    Mais ce n'est qu'une première approche ...
    d'où sort ton "i" ?
    et surtout où vas-tu mettre la valeur car la value="" ...

    Si tu mets pas tout ton code, pas facile de t'aider.

  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
    j'ai mis ce que tu m'as demandé de faire et voici l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @40,125 value="#{SelectTableBean.columnsTables(SelectTableBean.tablesStringSource.get(i-1))}": Method columnsTables not found
    page.xhtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <c:forEach var="i" begin="1" end="5" step="1" varStatus ="status"> 
              <c:set var="TableName" scope="view" value="#{SelectTableBean.tablesStringSource.get(i-1)}" />  
     
                      <div><p:selectOneMenu value="" >
                          <f:selectItems value="#{SelectTableBean.columnsTables(SelectTableBean.tablesStringSource.get(i-1))}"/> 
                        </p:selectOneMenu> </div>
     
                <br></br>
     
     
          </c:forEach>
    le "i" est une valeur dans le forEach, qui s'incrémente, puis j'affiche la liste des nom des champs d'une table dans un combo box.

    Après j'ai eu l'idée de stocker le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #{SelectTableBean.tablesStringSource.get(i-1))}
    dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <c:set var="TableNames" scope="view" value="#{SelectTableBean.tablesStringSource.get(i-1))}[//>
    et après j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:selectItems value="#{SelectTableBean.columnsTables(TableName)}"/>
    et j'ai cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @40,91 value="#{SelectTableBean.columnsTables(TableName)}": Method columnsTables not found

  4. #4
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    tu peux montrer ton ManagedBean "SelectTableBean".

  5. #5
    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
    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
    @ManagedBean (name="SelectTableBean")
    @SessionScoped
    public class SelectTableBean implements Serializable
    {
        int i = 0;
        String choixS;
        String TableName;
        private List<SelectItem> maValeur = new ArrayList<SelectItem>();
        private List<String> tablesStringSource = new ArrayList<String>();
     
     
       public List<SelectItem> getTables() throws SQLException
        {
            return ConnectionBean.moDatabaseConnection.getMyElements();
     
        }
     
       public List<SelectItem> getColumnsTables( String T) throws SQLException
        {
                    return ConnectionBean.moDatabaseConnection.getMyColumns(T);
     
        }
     
        public String getTableName() {
            return TableName;
        }
     
        public void setTableName(String TableName) {
            this.TableName = TableName;
        }
     
       public String getChoixS() {
            return choixS;
        }
     
        public void setChoixS(String choixS) {
            this.maValeur.add(new SelectItem(choixS));
            this.tablesStringSource.add(choixS);
     
        }
     
        public List<SelectItem> getMaValeur() {
            return maValeur;
        }
     
        public void setMaValeur(List<SelectItem> maValeur) {
            this.maValeur = maValeur;
        }
     
        public List<String> getTablesStringSource() {
            return tablesStringSource;
        }
     
        public void setTablesStringSource(List<String> tablesStringSource) {
            this.tablesStringSource = tablesStringSource;
        }
     
     
     
    }

  6. #6
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    il faut que tu écrives

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <f:selectItems value="#{SelectTableBean.getColumnsTables(TableName)}"/>

    NOTE : tes noms de beans et tes noms de variables, tu ne devrais pas les commencer par des majuscules : c'est "réservé" aux classes et interfaces.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 28/08/2007, 13h18
  2. [JSTL] Deux boucles imbriquées
    Par Esil2008 dans le forum Taglibs
    Réponses: 1
    Dernier message: 31/07/2007, 18h46
  3. Deux requetes imbriquées
    Par Thib dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/01/2007, 16h27
  4. Deux TANTQUE imbriqués
    Par aloula dans le forum Cobol
    Réponses: 2
    Dernier message: 31/05/2006, 00h02
  5. Deux méthodes de création Dll
    Par Hokagge dans le forum MFC
    Réponses: 6
    Dernier message: 12/01/2006, 11h04

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