3 votes

JSF : ajouter des css personnalisées en dernier

J'essaie de remplacer les css de certaines bibliothèques de composants (PrimeFaces, BootsFaces), mais je n'arrive pas à importer ma css personnalisée en dernier. J'ai essayé plusieurs choses que j'ai trouvées jusqu'à présent, mais rien n'a fonctionné. Ci-dessous, le modèle maître, où j'importe la css. Comme cela, il est importé, mais avant toutes les autres ressources. Après cela, j'énumère les autres essais que j'ai faits. J'imagine que le problème vient du fait que j'utilise des modèles.

master.xhtml

<?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:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:b="http://bootsfaces.net/ui"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title><ui:insert name="title">Project Documents Tutorial</ui:insert></title>
        <h:outputStylesheet name="css/projdocstut.css" />
    </h:head>
    <h:body>
        <b:container>
            <div id="header" class="header">
                <b:row>
                    <b:column span="12">
                            <ui:insert name="header">
                                <ui:include src="top-menu.xhtml" />
                                <ui:include src="main-menu.xhtml" />
                            </ui:insert>
                    </b:column>
                </b:row>
            </div>
            <div id="content" class="content">
                <b:row>
                    <b:column span="12">
                        <ui:insert name="content">Standard Content</ui:insert>
                    </b:column>
                </b:row>
            </div>

            <div id="footer" class="footer">
                <b:row>
                    <b:column span="12">
                        <ui:insert name="footer">Standard Bottom</ui:insert>
                    </b:column>
                </b:row>
            </div>
        </b:container>
    </h:body>
</html>

J'ai également essayé ce qui suit.

1) Ajout de ce qui suit dans l'en-tête / le corps --> résultat : pas d'importation du tout

<f:facet name="last">
    <h:outputStylesheet library="default" name="css/projdocstut.css" />
</f:facet>

2) Ajouter ce qui suit dans l'en-tête / le corps : la ressource result--> est importée avant toutes les autres ressources

<f:facet name="last">
        <h:outputStylesheet name="css/projdocstut.css" />
    </f:facet>

3) Ajouter ce qui suit au corps du texte : result --> resource is imported before all other resources

<h:outputStylesheet name="css/projdocstut.css" />

Le fichier index.xhtml qui utilise le modèle :

<?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:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="WEB-INF/templates/master.xhtml">    
            <ui:define name="content">
              Custom Content
            </ui:define>
    </ui:composition>

</html>

1voto

kemosabe Points 31

Bootsfaces s'en charge question en vous permettant de définir un attribut "position" dans le fichier <h:outputStylesheet> étiquette.

<h:head>
  ...
  <h:outputStylesheet name="css/style.css" position="last"/>
</h:head>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X