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 :

Une expression EL imbriquée qui n'est pas interprétée


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut Une expression EL imbriquée qui n'est pas interprétée
    Bonjour,

    Une Expression Language imbriqué qui s'afficher comment une chaine de caractère ?!
    Comprend pas pour quoi
    Je voudrais savoir s'il y la possibilité de faire appel une deuxièmes fois à cette interprétation dans le Cycle d'une JSF2.0

    Mon code Utile :

    Dans une classe JAVA j'ai une Map :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ArrayList< Map<String, String> > listColumn = new ArrayList< Map<String, String> >();
    Map<String, String> column = new HashMap<String, String>();
    column.put("titre", "Libeller");
    column.put("contenu", "#{liste.libeller}");
    listColumn.add( column );
    Qui va être appel dans une JSF de cette façon qui est la définition d'une colonne d'une dataTable et qui représente par un composant composite (le modèle d'une colonne).

    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
                <c:forEach items="${cc.attrs.listColumn}" var="listesEdit" >                
     
                    <p:column filterBy="#{listesEdit.contenu}">
                        <f:facet name="header">
                            <h:outputText value="#{listesEdit.titre}" />
                        </f:facet>
                        <p:cellEditor>
                            <f:facet name="output">
                                <h:outputText value="#{listesEdit.contenu}" />
                            </f:facet>
                            <f:facet name="input">
                                <h:inputText value="#{listesEdit.contenu}"/>
                            </f:facet>
                        </p:cellEditor>
                    </p:column>
     
                </c:forEach>
    Mon problème c’est que quand c'est une chaine de caractère sa marche très bien, mais quand c'est une EL qui est dans ma Map sa marche pas il m'afficher la EL comment une chaine de caractère alors il devrait l'interprété ? ( )

    Voilà comment je fais appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <elit:tableCrud listColumn="#{wilayaCtrl.tableCrudWilaya.columnEditable}" ></elit:tableCrud>
    Bon je sais que mon objectif n'est pas trais clairs je vais essayer de le dire en quelque mot simple pour que vous compreniez mon contexte :
    Donc j'ai comme objectif de faire un dataTable avec des colonnes construire dynamiquement selon le nombre de List de met Map.

    Voilà merci de m'aider sa commence à devenir urgent

  2. #2
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Bonjour, je reformule mon probléme (je doit trouvé une solution )

    Mon problème : je veux stocker dans l'entrée "contenu" de ma Map une EL #{liste.libeller} pour qu'elle soit interprétée lorsque j'appelles #{listesEdit.contenu} depuis ma page, c'est bien ça

    à quoi fait référence la première EL ?
    Elle représente les valeurs afficher dans une "column"(ma colonne) d'un "dataTable"(ma table) mais les colonnes je les construis d'une façon dynamique avec un <c:forEach items="" var="listesEdit" > donc qui boucle sur met colonne.


    aussi voilà j'ai modifier un peut mon code pour qu'il soit plus lisible :
    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
     
    <p:commandButton value="Actualiser la table" action="#{wilayaCtrl.tableCrudWilaya.doGetAllEnregistrement}" update="tablevar"/>
                <p:dataTable id="tablevar" var="liste" value="#{wilayaCtrl.tableCrudWilaya.listEnregistrement}" widgetVar="LaTable" paginator="true" rows="10" 
                             selectionMode="single" emptyMessage="No Wilaya found with given criteria"
                             rowSelectListener="#{wilayaCtrl.tableCrudWilaya.onSelectionerEnregistrement}"
                             rowEditListener="#{wilayaCtrl.tableCrudWilaya.onEditerEnregistrement}">
     
                    <f:facet name="header">
                        Titre de la table -  
                    </f:facet>
     
                    <f:facet name="header">
                        <p:outputPanel>
                            <h:outputText value=" Recherche Globale:" />
                            <h:inputText id="globalFilter" onkeyup="LaTable.filter()" />
                        </p:outputPanel>
                    </f:facet>
     
                    <p:column>
                        <f:facet name="header">
                            <h:outputText value="Modifier" />
                        </f:facet>
                        <p:rowEditor />
                    </p:column>
     
                    <p:column filterBy="#{liste.id}" sortBy="#{liste.id}">
                        <f:facet name="header">
                            <h:outputText value="Code Wilaya" />
                        </f:facet>
                        <h:outputText value="#{liste.id}" />
                    </p:column>
     
     
     <!-- Ici le problème  -->              
                    <c:forEach items="${wilayaCtrl.tableCrudWilaya.columnEditable}" var="listesEdit" >
     
                        <p:column filterBy="${listesEdit.contenu}">
                            <f:facet name="header">
                                <h:outputText value="${listesEdit.titre}" />
                            </f:facet>
                            <p:cellEditor>
                                <f:facet name="output">
                                    <h:outputText value="${listesEdit.contenu}" />
                                </f:facet>
                                <f:facet name="input">
                                    <h:inputText value="${listesEdit.contenu}"/>
                                </f:facet>
                            </p:cellEditor>
                        </p:column>
     
                    </c:forEach>
    <!--  -----------------------  -->
     
     
                    <f:facet name="footer">
                    </f:facet>
     
                </p:dataTable>
    Sachant mon "${wilayaCtrl.tableCrudWilaya.columnEditable}" point sur ma propriété List<Map>
    que voilà comment je la remplie dans une de met classe 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
    ArrayList< Map<String, String> > listColumn = new ArrayList< Map<String, String> >();
     
    //Colonne  1
            Map<String, String> column = new HashMap<String, String>();
            column.put("titre", "Libeller");
            column.put("contenu", "#{liste.libeller}");
            listColumn.add( column );
     
    //Colonne  2 jusqu’à N colonne
            column = new HashMap<String, String>();
            column.put("titre", "Libeller2");
            column.put("contenu", "#{liste.libeller2}");
            listColumn.add( column );
     
    this.setColumnEditable( listColumn );
    et donc j'ai comme résultat :

    ci-joint dans l'image ci-dessous
    http://dz.servhome.org/resultat.GIF

    pour quoi ma EL que je mets en paramétré dans ma classe java ne veux pas être interprété ?

    Merci de votre aide
    Images attachées Images attachées  

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Par défaut
    Ca serait pas plus simple de passer par une liste d'objets pour l'affichage ???

    Style

    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
     
    public class MaClasse {
      private String attribut1;
      private String attribut2;
     
      // Getters / Setters
    }
     
    public class DataTableBean {
     
      private List<MaClass> list;
     
      // Getters / Setters
     
      public  List<MaClass> getList() {
        list = new ArrayList<MaClasse>();
     
        MaClasse obj1 = new MaClasse();
        obj1.setAttribut1("valeur1Attribut1");
        obj1.setAttribut2("valeur1Attribut2");
     
        MaClasse obj2 = new MaClasse();
        obj2.setAttribut1("valeur2Attribut1");
        obj2.setAttribut2("valeur2Attribut2");
     
        list.add(obj1);
        list.add(obj2);
     
        return list;
      }
    } 
     
    <h:dataTable value="#{dataTableBean.list}" var="element">
     
      <h:column>
        <f:facet name="header" >
          <h:outputText value="Colonne 1"/>
        </f:facet>    
        <h:outputText value="#{element.attribut1}"/>
      </h:column>
     
      <h:column>
        <f:facet name="header" >
          <h:outputText value="Colonne 2"/>
        </f:facet>    
        <h:outputText value="#{element.attribut2}"/>
      </h:column>
     
    </h:dataTable>
    En évitant bien sur de construire ta liste dans le getter bien sûr

  4. #4
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    Citation Envoyé par simplicity2k Voir le message
    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
     
    public class MaClasse {
      private String attribut1;
      private String attribut2;
     
      // Getters / Setters
    }
     
    public class DataTableBean {
     
      private List<MaClass> list;
     
      // Getters / Setters
     
      public  List<MaClass> getList() {
        list = new ArrayList<MaClasse>();
     
        MaClasse obj1 = new MaClasse();
        obj1.setAttribut1("valeur1Attribut1");
        obj1.setAttribut2("valeur1Attribut2");
     
        MaClasse obj2 = new MaClasse();
        obj2.setAttribut1("valeur2Attribut1");
        obj2.setAttribut2("valeur2Attribut2");
     
        list.add(obj1);
        list.add(obj2);
     
        return list;
      }
    } 
     
    <h:dataTable value="#{dataTableBean.list}" var="element">
     
      <h:column>
        <f:facet name="header" >
          <h:outputText value="Colonne 1"/>
        </f:facet>    
        <h:outputText value="#{element.attribut1}"/>
      </h:column>
     
      <h:column>
        <f:facet name="header" >
          <h:outputText value="Colonne 2"/>
        </f:facet>    
        <h:outputText value="#{element.attribut2}"/>
      </h:column>
     
    </h:dataTable>
    Sa je sais faire le problème réside dans le fait que si tu mets des EL dans la valeur de ta liste dans ta classe java ça ne marche pas ?
    (Comme je les expliquer dans mon 2em poste)

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 67
    Par défaut
    Pourquoi veux-tu mettre une El dans ton code java ... ? Je comprend pas le but désolé

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

Discussions similaires

  1. [RegEx] Remplacement d'une balise qui n'est pas imbriquée dans une autre
    Par w3ar3dus1 dans le forum Langage
    Réponses: 0
    Dernier message: 30/05/2011, 11h43
  2. Réponses: 18
    Dernier message: 12/06/2006, 09h39
  3. lien dessus une images qui n'est pas en background
    Par tiyolx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/03/2006, 18h40
  4. [VB6]Connexion a une BD mysql qui n'est pas en local
    Par aude_1603 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 02/03/2006, 09h05
  5. Acceder a une base SQL qui n'est pas sur le meme serveur
    Par skyo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/01/2006, 10h58

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