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 :

Passage Paramètre page à Bean


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut Passage Paramètre page à Bean
    Bonjour,
    j'utilise Iceface et notamment le Tag menubar, le but étant de créer un menu dynamiquement, j'aimerais pouvoir mettre dans le code de la page un paramètre servant à la construction du menu , je n'arrive pas à récupérer ce paramètre. Dois-je utiliser f:setPropertyActionListener ou f:param?? Merci d'avance. Désolé pour cette question bête mais je débute...

    Ma page
    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
     
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:h="http://java.sun.com/jsf/html" xmlns:ice="http://www.icesoft.com/icefaces/component">
        <head>
            <link href="css/rime.css" rel="stylesheet" type="text/css"/>
        </head>
     
        <body>
            <f:view>
                <ice:form>
                    <ice:menuBar orientation="horizontal" >
                        <ice:menuItems value="#{menuBean.menuModel}">
                            <f:setPropertyActionListener target="#{menuBean.menuId}" value="1" />
                        </ice:menuItems>
                    </ice:menuBar>
                </ice:form>
     
            </f:view>
     
        </body>
    </html>
    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
    package org.devit;
    
    import com.icesoft.faces.component.menubar.MenuItem;
    import java.util.ArrayList;
    import java.util.List;
    import javax.el.MethodExpression;
    import javax.faces.context.FacesContext;
    import javax.faces.el.MethodBinding;
    import javax.faces.event.ActionEvent;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import org.devit.entity.MnuLine;
    import org.devit.entity.controller.MnuLineJpaController;
    import org.devit.util.FacesUtils;
    
    
    /**
     *
     * @author fbourqui
     */
    public class MenuBean {
    
        private List menuModel;
        //private MenusJpaController mnuController = null;
        private String actionFired;
        private String param;
        private List<MnuLine> mnuLines;
        private String menuId;
    
    
        public List getMenuModel() {
            return menuModel;
        }
    
        public MenuBean() {
    
            menuModel = new ArrayList();           
            mnuLines = new ArrayList<MnuLine>();
           
            /*
            Query q = FacesUtils.getEM().createQuery("select m from MnuLine m");
             
            mnuLines=q.getResultList();
            System.out.println(q.getResultList().size());
             
    
    
            System.out.println("TEST JPA");
            for(int i=0;i<=mnuLines.size()-1;i++){
                System.out.println(mnuLines.get(i).getLink());
            }
            */
            System.out.println(menuId);
    
            MenuItem topLevel1 = new MenuItem();
            topLevel1.setValue("Home");
            MenuItem topLevel2 = new MenuItem();
            topLevel2.setValue("Presentation");
            MenuItem topLevel3 = new MenuItem();
            topLevel3.setValue("Tips And Trick");
    
            FacesContext context = FacesContext.getCurrentInstance();
            MethodExpression methodEx = context.getApplication().getExpressionFactory().createMethodExpression(context.getELContext(),
            "#{navigationController.goTo}", String.class, new Class[] {});
            //topLevel3.setActionExpression(methodEx);
    
            topLevel3.setLink("contact.iface");
           // topLevel3.setActionListener(this.createMethodBinding("actionListener"));
            
    
    
    
            menuModel.add(topLevel1);
            menuModel.add(topLevel2);
            menuModel.add(topLevel3);
    
            MenuItem sub1_1 = new MenuItem();
    
            sub1_1.setValue("sub1_1");
            MenuItem sub1_2 = new MenuItem();
    
            sub1_2.setValue("sub1_2");
            MenuItem sub1_3 = new MenuItem();
    
            sub1_3.setValue("sub1_3");
    
            topLevel1.getChildren().add(sub1_1);
            topLevel1.getChildren().add(sub1_2);
            topLevel1.getChildren().add(sub1_3);
    
            MenuItem sub1_1_1 = new MenuItem();
    
            sub1_1_1.setValue("sub1_1_1");
            MenuItem sub1_1_2 = new MenuItem();
    
            sub1_1_2.setValue("sub1_1_2");
            MenuItem sub1_1_3 = new MenuItem();
    
            sub1_1_3.setValue("sub1_1_3");
    
            sub1_1.getChildren().add(sub1_1_1);
            sub1_1.getChildren().add(sub1_1_2);
            sub1_1.getChildren().add(sub1_1_3);
        }
    
    
        public String action(){
    
        return "contact";
        }
    
         public MethodBinding createMethodBinding(String method)
           {
               Class[] args = {ActionEvent.class};
               MethodBinding mb = FacesContext.getCurrentInstance().getApplication().createMethodBinding("#{navigationController." + method + "}", args);
               return mb;
           }
    
        /**
         * @return the menuId
         */
        public String getMenuId() {       
            return menuId;
        }
    
        /**
         * @param menuId the menuId to set
         */
        public void setMenuId(String menuId) {
            this.menuId = menuId;
        }
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 150
    Par défaut
    A condition que ce paramètre ait des getters et setters au niveau de son bean de déclaration, tu mets ceci au niveau du bean ou tu veux l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String monParam = (String) getValue("#{ParentBean.LeParametre}");
    Si tu veux l'utiliser au niveau de la JSP , tu met au niveau du champ ou tu veux que la valeur s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "#{ParentBean.LeParametre}"

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par twister9458 Voir le message
    A condition que ce paramètre ait des getters et setters au niveau de son bean de déclaration, tu mets ceci au niveau du bean ou tu veux l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String monParam = (String) getValue("#{ParentBean.LeParametre}");
    Si tu veux l'utiliser au niveau de la JSP , tu met au niveau du champ ou tu veux que la valeur s'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "#{ParentBean.LeParametre}"
    getValue appartient à quelle classe?

  4. #4
    Membre confirmé
    Avatar de fabou3377
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 182
    Par défaut
    Oui, je comprends les expressions de langage mais ce que je recherche à faire est la chose suivante :

    Dans la page jsf et au chargement de celle-ci je me la propriété menuBean.menuId =1 de cette manière lorsque menuBean.menModel est appelé pour construire le menu dynamique cette propriété menuId =1 dans ma classe menuBean.

    Merci d'avance pour votre aide

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 150
    Par défaut
    à Sniper37 : getValue(String) appartient à la classe com.sun.rave.web.ui.appbase.Facesbean

    à fabou3377 : mets menubean.menuID = 1 au niveau de ton constructeur par défaut du bean, et tu aura ta valeur mise à 1 à chaque chargement de ta page.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par twister9458 Voir le message
    à Sniper37 : getValue(String) appartient à la classe com.sun.rave.web.ui.appbase.Facesbean

    à fabou3377 : mets menubean.menuID = 1 au niveau de ton constructeur par défaut du bean, et tu aura ta valeur mise à 1 à chaque chargement de ta page.
    Tu n'a pas remarqué qu'il n'utilise pas com.sun.rave.web.ui.appbase.Facesbean ??

    Si tu utilise netbeans ou une librairie particulière, ton code, ne pourra pas s'appliquer aux autres qui n'utilisent pas cette librairie..
    Ce n'est pas la première fois que tu propose ça, tu risque d'induire les autres en erreur..

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/08/2009, 23h56
  2. Problème passage de paramètre à un bean
    Par Niniz dans le forum JSF
    Réponses: 5
    Dernier message: 01/08/2007, 16h26
  3. Passage de paramètres à un bean
    Par Moonwalker dans le forum JSF
    Réponses: 2
    Dernier message: 11/03/2007, 09h03
  4. [Portlet] Passage de paramètres page jsp
    Par babalastar dans le forum Portails
    Réponses: 3
    Dernier message: 29/01/2007, 12h05
  5. Passage paramètres à une page PHP
    Par linar009 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/09/2006, 14h34

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