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 :

Balises JSF et style CSS


Sujet :

JSF Java

  1. #1
    Membre régulier Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Points : 118
    Points
    118
    Par défaut Balises JSF et style CSS
    Bonjour,

    J'essaye depuis longtemps de ne pas mettre le style directement dans la balise mais de le mettre dans un fichier de style CSS mais ça ne marche pas.
    Voila mon code
    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
    <html>
     <h:head>
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/default.css" rel="stylesheet" type="text/css" />
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/acceuil.css" rel="stylesheet" type="text/css" />
        </h:head>
        <ui:composition template="./TemplateAcceuil.xhtml">
            <ui:define name="left">
                <h:form id="form">
                    <p:growl id="messages"/>
                    <p:slideMenu id="slidmenu">
                        <p:submenu label="AFFAIRES CONTENTIEUSES">
                            <p:menuitem value="Créer une affaire"/>
                            <p:menuitem value="Modifier une affaire"/>
                            <p:menuitem value="Classer une affaire"/>
                        </p:submenu>
                   </p:slideMenu>
                </h:form>
            </ui:define>
        </ui:composition>
    </html>
    Fichier CSS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #slidmenu{
        width: 300px;
        margin-left: 25px;
        margin-top: 5px;
    }
    Quelqu'un saurait-il m'expliquer ce qui ne va pas ?

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    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
    Points : 120
    Points
    120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <link href="#{facesContext.externalContext.requestContextPath}/css/default.css" rel="stylesheet" type="text/css" />
    ou

    jsf2, plus propre

    http://www.mkyong.com/jsf2/how-to-in...ts-css-in-jsf/

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Bonjour ,

    L'id d'un composant intégré dans une formulaire JSF est préfix par l'id du formulaire suivi du caractère deux points. Essaye avec un inspecteur d'élément (comme l'inspecteur d'élément de google chrome ), et tu vas remarquer que l'id d'un composant dans une formulaire est sous la forme "id_form:id_composant".

    Voila un exemple :
    index.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:form id="form">                
          <h:inputText id="nom" />                
    </h:form>

    inspecter l'élément inputText:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form id="form" name="form" method="post" action="/testID/faces/index.xhtml" enctype="application/x-www-form-urlencoded">
        <input type="hidden" name="form" value="form">
        <input id="form:nom" type="text" name="form:nom"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8260917595372424658:-7277619820485900143" autocomplete="off">
    </form>
    le composant <h:inputText id="nom" /> devient <input id="form:nom"....

    Pour résoudre ton problème, tu dois utiliser l’attribue styleClass. Voila le résultat :

    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
     
    <html>
     <h:head>
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/default.css" rel="stylesheet" type="text/css" />
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/acceuil.css" rel="stylesheet" type="text/css" />
        </h:head>
        <ui:composition template="./TemplateAcceuil.xhtml">
            <ui:define name="left">
                <h:form id="form">
                    <p:growl id="messages"/>
                    <p:slideMenu id="slidmenu" class="slidmenu">
                        <p:submenu label="AFFAIRES CONTENTIEUSES">
                            <p:menuitem value="Créer une affaire"/>
                            <p:menuitem value="Modifier une affaire"/>
                            <p:menuitem value="Classer une affaire"/>
                        </p:submenu>
                   </p:slideMenu>
                </h:form>
            </ui:define>
        </ui:composition>
    </html>
    CSS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .slidmenu{
        width: 300px;
        margin-left: 25px;
        margin-top: 5px;
    }

  4. #4
    Membre régulier
    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
    Points : 120
    Points
    120
    Par défaut
    Le problème rencontré actuellement est un problème d'import du fichier CSS si j'ai bien compris (à vérifier avec firebug ou autre effectivement) car le chemin ne semble pas être le bon, et non pas un problème de récupération d'ID dans l'immédiat.

    Citation Envoyé par Riadh-A Voir le message
    Bonjour ,

    L'id d'un composant intégré dans une formulaire JSF est préfix par l'id du formulaire suivi du caractère deux points. Essaye avec un inspecteur d'élément (comme l'inspecteur d'élément de google chrome ), et tu vas remarquer que l'id d'un composant dans une formulaire est sous la forme "id_form:id_composant".

    Voila un exemple :
    index.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:form id="form">                
          <h:inputText id="nom" />                
    </h:form>

    inspecter l'élément inputText:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form id="form" name="form" method="post" action="/testID/faces/index.xhtml" enctype="application/x-www-form-urlencoded">
        <input type="hidden" name="form" value="form">
        <input id="form:nom" type="text" name="form:nom"><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="8260917595372424658:-7277619820485900143" autocomplete="off">
    </form>
    le composant <h:inputText id="nom" /> devient <input id="form:nom"....

    Pour résoudre ton problème, tu dois utiliser l’attribue styleClass. Voila le résultat :

    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
     
    <html>
     <h:head>
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/default.css" rel="stylesheet" type="text/css" />
            <link href="/CONTENTIEUX-APP-war/faces/resources/css/acceuil.css" rel="stylesheet" type="text/css" />
        </h:head>
        <ui:composition template="./TemplateAcceuil.xhtml">
            <ui:define name="left">
                <h:form id="form">
                    <p:growl id="messages"/>
                    <p:slideMenu id="slidmenu" class="slidmenu">
                        <p:submenu label="AFFAIRES CONTENTIEUSES">
                            <p:menuitem value="Créer une affaire"/>
                            <p:menuitem value="Modifier une affaire"/>
                            <p:menuitem value="Classer une affaire"/>
                        </p:submenu>
                   </p:slideMenu>
                </h:form>
            </ui:define>
        </ui:composition>
    </html>
    CSS

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .slidmenu{
        width: 300px;
        margin-left: 25px;
        margin-top: 5px;
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Points : 12
    Points
    12
    Par défaut
    Le problème rencontré actuellement est un problème d'import du fichier CSS si j'ai bien compris (à vérifier avec firebug ou autre effectivement) car le chemin ne semble pas être le bon, et non pas un problème de récupération d'ID dans l'immédiat.
    même s'il y a un problème d'import du fichier le problème de l'id existe. Essaye avec un petit exemple pour que tu sois convaincu

  6. #6
    Membre régulier
    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
    Points : 120
    Points
    120
    Par défaut
    Citation Envoyé par Riadh-A Voir le message
    même s'il y a un problème d'import du fichier le problème de l'id existe. Essaye avec un petit exemple pour que tu sois convaincu
    C'était juste une remarque innocente et non pas un méchanceté gratuite

    Mais bon la solution pour m'en convaincre aurait été de me sortir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #form\:slidmenu {
        width: 300px;
        margin-left: 25px;
        margin-top: 5px;
    }
    dans le CSS ...

    ou alors encore <h:form id="form" prependId="false"></h:form> d'avoir un id "clean" dans le html généré ...

  7. #7
    Membre régulier Avatar de azassma
    Femme Profil pro
    Ph.D - Computer Vision
    Inscrit en
    Avril 2012
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ph.D - Computer Vision
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 159
    Points : 118
    Points
    118
    Par défaut
    Merci pour vos réponses.
    En fait le problème ne se trouve pas dans le chemin du fichier css parce que les styles que je mets pour les balises simples de HTML s'applique. Et pour l'attribut class, ça me génére une erreur sur le navigateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Setter not found for property class

  8. #8
    Membre régulier
    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
    Points : 120
    Points
    120
    Par défaut
    styleClass comme attribut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText styleClass="maClasse" value="toto" />

  9. #9
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Points : 255
    Points
    255
    Par défaut
    Il se peut que les modifications Css apportées ne soient pas visible pour une autre raison. C'est que les styles Css appliqués par Primefaces sur leurs composants écrasent les demandes faites manuellement.
    Je confirme que l'inspecteur d'élément devient indispensable si l'on veut personnaliser son interface.

Discussions similaires

  1. Style CSS d'une balise <TR> pour un VerticalPanel
    Par ensi_en dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 15/06/2011, 10h58
  2. JSF et styles CSS
    Par tomy29 dans le forum JSF
    Réponses: 11
    Dernier message: 04/08/2008, 12h24
  3. ajouter un style css a une balise <select>
    Par King_T dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 09/05/2008, 07h59
  4. Réponses: 5
    Dernier message: 19/07/2007, 16h51

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