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 :

error avec HtmlPanelMenu: Illegal Syntax for Set Operation


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut error avec HtmlPanelMenu: Illegal Syntax for Set Operation
    Bonjour,

    Je suis débutant en Jsf et j'ai un problème avec mon panelMenu qui me dérrange ça fait quelques jours maintenant et j'aimerai bien un aide de quelqu'un.

    J'ai créer un panelMenu, j'arrive bien à afficher les groupes et les Items. C'est en cliquant sur le panelItem, je recoie l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.faces.FacesException: javax.el.PropertyNotWritableException: /pages/users/Customer.xhtml @76,72 binding="#{userMenu.addControls()}": Illegal Syntax for Set Operation
    D'apés le message il est claire qu'il y a un problème avec le EL expression. Mais la methodeBinding addControls() a bien marché pour afficher le menu (c'est la meme méthode qui fait tous). J'ai modifier le code mais hélas il affiche l'erreur avant qu'il accède reste du code java.

    je vous transmet un peut de code de mon java 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
    public HtmlPanelMenu addControls() {
             FacesContext context = FacesContext.getCurrentInstance();   
             Application application = context.getApplication();
     
             setPanelMenu(new HtmlPanelMenu());
             getPanelMenu().setId("panelMenu");
             getPanelMenu().setStyle("width:200px");
             getPanelMenu().setMode("ajax");
             getPanelMenu().setIconExpandedGroup("disc");
             getPanelMenu().setIconCollapsedGroup("disc");
             getPanelMenu().setIconExpandedTopGroup("chevronUp");
             getPanelMenu().setIconGroupTopPosition("right");
             getPanelMenu().setIconCollapsedTopGroup("chevronDown");
             getPanelMenu().setIconGroupTopPosition("right");
     
             List childrenMenu = getPanelMenu().getChildren();
     
            if(authenticatedUser.getProfile().getAccessRight().equals("customer") ) {
     
    // methode qui cherche les produit du client authentifié
                customerProducts();         
     
                 HtmlPanelMenuGroup panelMenuGroup = new HtmlPanelMenuGroup();
                 panelMenuGroup.setId("Products");
                 panelMenuGroup.setLabel("products");
                 List childrenGroup = panelMenuGroup.getChildren();
     
                 Iterator it = userProducts.iterator();
     
                 while(it.hasNext() ) {
                     Product prod = (Product) it.next();
     
                     HtmlPanelMenuItem panelMenuItem = new HtmlPanelMenuItem();
                     panelMenuItem.setId("panelMenuItem"+prod.getProductId() );
                     panelMenuItem.setLabel(prod.getName() );
                     panelMenuItem.setRendered(true);
     
                     childrenGroup.add(panelMenuItem);
                     childrenMenu.add(panelMenuGroup);
                     //updateOutputPanel();
                 }
    //apres c'est le code concerant les l'action des panelItems je l'ai ai désactiver et pourtant l'erreur est la même
    //......
    } return panelMenu;
    ici le Binding dans la page .xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:panelMenu binding = "#{userMenu.addControls()}"/>
    j'ai ajouté le scope de mon backing bean en tant que session, le managed bean est bien déclaré dans le fichier web.xml.
    si quelqu'un a un exemple décrivant l'implémentation d'un panelMenu dynamique ça me fait trés plaisir qu'il me l'envoie.

    merci beaucoup et bonne weekend

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    Il ne faut pas utiliser les () dans l'EL ...

    Au lieu de
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:panelMenu binding = "#{userMenu.addControls()}"/>
    essaies:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <rich:panelMenu binding = "#{userMenu.addControls}"/>

    en supposant que ton userMenu définit getAddControls() et setAddControls().

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut
    merci

    mais le addControls est une méthode. je croie que tu veux dire qu'il fallait faire un bind sur un attribut (property). c'est ça?

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Exact, vers une property respectant les conventions de nommage des JavaBeans et ayant un getter + setter.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut
    ok, mais comment pouvant nous Binde vers une property et en meme temps executer la methode. le panelMenu n'as pas d'attribut action ou actionListener.

    si t'as des references merci de me les indiquer
    merci

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bah JSF va toujours et systématiquement passer par le getter et par le setter pour accéder à la propriété bindée ... donc, tu peux mettre ton code labas ... quoi que je ne suis pas très sur de ce que tu fais dans ce code.

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Par défaut
    merci pour l'info. J'ai trouvé une meilleure solution; il suffit de déclarer la fonction en tant que @factory("panelMenu") et la fonction s'exécutera automatiquement (cad qd la propriété panelMenu est appelé).

    merci

Discussions similaires

  1. Eclipse pense à une syntax error avec un typedef opaque
    Par Gui13 dans le forum Eclipse C & C++
    Réponses: 6
    Dernier message: 27/10/2009, 14h32
  2. Syntax error avec jQuery
    Par nicko_73 dans le forum jQuery
    Réponses: 5
    Dernier message: 23/10/2009, 09h23
  3. Syntax error avec un script KSH
    Par Neuromancien2 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/05/2008, 16h44
  4. VBS syntax error avec la fonction PivotCache d'Excel
    Par speedking78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 14h44
  5. for-each avec select dans un node-set
    Par krapno dans le forum XSL/XSLT/XPATH
    Réponses: 24
    Dernier message: 13/07/2007, 16h48

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