Bonjour,

est-il possible de charger une feuille de styles CSS dynamiquement grâce à Ajax lorsque l'on utilise JSF ?

J'ai le template suivant :

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
 
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
 
<f:view />
<h:head>
 
</h:head>
 
<h:body>
	<f:facet name="last">
		<h:outputStylesheet name="/ressources/css/default.css" />
	</f:facet>
 
	<!-- Bandeau -->
	<p:layout fullPage="true">
		<p:layoutUnit position="north" style="height: 50px;">
			<h:form id="menuForm">
				<div id="bandeau">
					<div id="menu" class="bandeauElement">
						<p:commandLink action="#{myBean.allerVersDeuxiemePage}">
							<i class="fa fa-arrow-left" style="color: white" />
							<f:ajax render="content cssContent contentForm" />
						</p:commandLink>
					</div>
				</div>
			</h:form>
		</p:layoutUnit>
		<p:layoutUnit position="center">
			<h:form id="contentForm">
				<ui:insert name="content">                                                      
					<ui:include src="#{facePainter.mainContent}" />                        
				</ui:insert>  
			</h:form>
 
			<ui:insert name="cssContent"> 
				<h:outputStylesheet library="css" name="#{facePainter.cssContent}"  />                     
			</ui:insert>  			
 
		</p:layoutUnit>
	</p:layout>
</h:body>
</html>
J'ai également le FacePainter suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
@ManagedBean(name="facePainter")
@SessionScoped
public class FacePainter {
 
    private String mainContent = "ressources/fragments/premierePage.xhtml";
 
    private String cssContent = "ressources/css/default.css";
 
    //getters/setters
 
}
et le bean pour ma page

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
public void allerVersDeuxiemePage() {
	facePainter.setMainContent("ressources/fragments/deuxiemePage.xhtml");
	facePainter.setCssContent("ressources/css/deuxiemePage.css");
}
Le changement de page par Ajax semble se faire. Cependant, lorsque je regarde les sources, je n'ai pas le style "deuxiemePage.css". J'ai un <link type="text/css" rel="stylesheet" href="RES_NOT_FOUND" /> à la place.

Quelqu'un a une idée pour m'aider ? Merci d'avance