Mise à jour du CSS par Ajax
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:
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:
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:
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