Bonjour,
Le titre est long, j'espère qu'il permet de bien cibler mon problème.

J'ai un fichier xhtml qui se nomme reportFrame.xhtml, sur lequel je voudrais appliquer un style en utilisant un fichier framereportStyle.xsl. Jusque-là, tout va bien [1].

Voici l'arborescence niveau pages web (j'ai fait ce que j'ai pu niveau indentation) :
- Web Pages

+ WEB-INF
- dialogs

...
framesToReport.xhtml
- layoutUnits
bottom.xhtml
content.xhtml
left.xhtml
top.xhtml
- resources
- css
framenetStyle.css
framereportStyle.xsl
jsfcrud.css
logo.png
-dialog
...
reportFrame.xhtml
- javascript
index.xhtml
login.xhtml
template.xhtml

La partie intéressante de "reportFrame.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
26
27
28
29
30
31
<?xml version='1.0' encoding='UTF-8' ?>
<?xml-stylesheet href="../css/framereportStyle.xsl" type="text/xsl"?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:composite="http://java.sun.com/jsf/composite"
                xmlns:svg="http://java.sun.com/jsf/composite/svg"
                xmlns:c="http://java.sun.com/jsp/jstl/core">
 
    <composite:interface>
        <composite:attribute name="index" required="true" />
    </composite:interface>
 
    <composite:implementation>
        <p:dialog id="reportFrameDialog" appendToBody="true" header="#{bundle.Header_ReportFrame} #{frameController.framesToReport.get(cc.attrs.index).name}" widgetVar="reportFrameDialog#{cc.attrs.index}" width="800" height="550" maximizable="true" minimizable="true" dynamic="true" showEffect="fade" hideEffect="fade"> 
 
            <h:outputText class="reportFrameName" value="#{frameController.framesToReport.get(cc.attrs.index).name}" />
 
            <p:fieldset legend="#{bundle.ViewFrameTitle_definition}">  
                <h:outputText escape="false" value="#{frameController.framesToReport.get(cc.attrs.index).definition}" />  
            </p:fieldset>
 
...du code...
 
        </p:dialog>
    </composite:implementation>
 
</ui:composition>
J'espère ne pas m'être trompé dans le chemin relatif.

Mon but est, pour l'instant, de réussir à faire qu'une balise <fen>blablabla</fen> qui va apparaitre dans l'outputText soit transformée en quelque chose de plus sympa, pour l'instant je mets juste du <h1> pour les tests. J'ai mis escape="false" dans les propriétés de l'outputText comme vous pouvez le voir.
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
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:xhtml="http://www.w3.org/1999/xhtml"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:p="http://primefaces.org/ui">
    <xsl:output method="xhtml"/>
 
    <xsl:template match="fen">
        <h1>
            <xsl:apply-templates/>
        </h1>
    </xsl:template>
 
</xsl:stylesheet>
Le problème, c'est que ça ne marche pas. Je pense que c'est à cause de la composition : ma page reportFrame.xhtml est comprise dans une page frameToReport.xhtml, comprise dans content.xhtml, comprise dans index.xhtml, utilisant template.xhtml. Par conséquent, peut-être que le style est effacé par quelqu'autre style ? Je sais que pour mettre du CSS il a fallu que je passe outre le CSS défaut imposé par Primefaces que j'utilise en utilisant !important. Y aurait-il quelque chose de similaire ?
Enfin, avant de vous remercier d'avoir lu jusque-là, je rappelle que je ne suis pas un expert, et que par conséquent peut-être qu'orienter votre réflexion dans le même sens que moi (i.e. sur la composition) peut être une erreur !

N'hésitez pas à me demander d'autres informations,
Antoine.

[1] : En fait ce n'est pas totalement évident de faire du xhtml à partir de xhtml, mais grâce à ce lien, on peut s'en sortir.