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 :

Comment faire de l'héritage dans un fichier XHTML


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 34
    Points : 29
    Points
    29
    Par défaut Comment faire de l'héritage dans un fichier XHTML
    Dans mon application Icefaces 3 j'ai un ManagedBean ancètre qui definit les attributs commun à ceux qu'ils l'étende. Notamment les styles CSS à appliquer aux icones du menu car en fonction de si elles sont sélectionnées ou non il change. Ce sont les classes qui étendent la classe CommonMBean qui définissent ensuite les styles. Ma question est qu'est ce que je dois mettre dans l'experssion language styleClass afin de lui dire que le getter a utiliser est celui de la classe mère.

    CommonMBean.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
    package com.omb.view;
     
    public class CommonMBean 
     
        private String menu1Css = "";
        private String menu2Css = "";
     
     
        public String getMenu1Css() {
            return this.menu1Css;
        }
     
        public void setMenu1kCss(String menu1Css) {
            this.menu1Css = menu1Css;
        }
     
        public String getMenu2Css() {
            return this.menu2Css;
        }
     
        public void setMenu2Css(String menu2Css) {
            this.menu2Css = menu2Css;
        }
    }
    FirstMBean.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
    package com.omb.view;
     
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
     
    import com.accor.gestpro.view.AbstractBackingBean;
     
    @Controller
    @Scope("session")
    public class FirstMBean extends CommonMBean {
     
        public String displayMenu1() {
            setMenu1Css("menu1Sel");
            setMenu2Css("menu2");
            return "menu1";
        }
     
    }
    SecondeMBean.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
    package com.omb.view;
     
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
     
    import com.accor.gestpro.view.AbstractBackingBean;
     
    @Controller
    @Scope("session")
    public class SecondeMBean extends CommonMBean {
     
        public String displayMenu2() {
            setMenu1Css("menu1");
            setMenu2Css("menu2Sel");
            return "menu2";
        }
     
    }

    XHTML :

    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"?>
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets">
    <body>
        <ui:composition>
            <ice:form id="buttonsForm" xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ice="http://www.icesoft.com/icefaces/component"
                xmlns:ace="http://www.icefaces.org/icefaces/components"
                xmlns:c="http://java.sun.com/jstl/core"
                xmlns:ui="http://java.sun.com/jsf/facelets">
    
                <ul class="mainMenu">
                    <li class="home"><ice:commandLink
                            styleClass="#{firstMBean.menu1Css}" value="Menu 1"
                            action="#{firstMBean.displayMenu1}" /></li>
                    <li class="activity"><ice:commandLink
                            styleClass="#{secondeMBean.menu2Css}"
                            value="Menu 2"
                            action="#{secondeMBean.displayMenu2}" />
                </ul>
            </ice:form>
        </ui:composition>
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,
    Citation Envoyé par ombinte Voir le message
    Ma question est qu'est ce que je dois mettre dans l'experssion language styleClass afin de lui dire que le getter a utiliser est celui de la classe mère.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
                    <li class="home"><ice:commandLink
                            styleClass="#{firstMBean.menu1Css}" value="Menu 1"
                            action="#{firstMBean.displayMenu1}" /></li>
    Dans le code ci dessus tu appelles bien menu1Css de la classe mère !
    Ce que tu as écris fonctionne, mais je pense qu'il ne fait pas ce que tu attend.

    Citation Envoyé par ombinte Voir le message
    Dans mon application Icefaces 3 j'ai un ManagedBean ancètre qui definit les attributs commun à ceux qu'ils l'étende.
    oui, mais aux vues de ta question je pense que tu crois que les instances de FirstMBean et SecondeMBean vont partager les valeurs de CommonMBean, ce qui n'est absolument pas le cas !
    Si c'est ton problème alors regarde les cours sur la programmation objet en java :


    De plus tu sembles vouloir construire toi même un menu alors que IceFaces en propose déja via l'utilisation du MenuBar, y a t'il une raison particulière ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2015, 07h06
  2. Comment faire un lien interne dans un fichier php?
    Par Alexandrebox dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2007, 01h24
  3. [CR]Comment faire de longs commentaires dans le code
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 07/06/2004, 20h45
  4. Réponses: 5
    Dernier message: 08/03/2004, 10h28

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