Bonsoir,
Je construis une petite application avec JSF et les Facelets, et j'ai un petit souci.
Dans mon web.xml j'ai défini une page d'accueil par défaut et dans cette page j'ai un
<jsp:forward page="/faces/web/pages/login/login.xhtml"/>
Ce forward m'affiche bien la page demandée avec le rendu que j'attends.
Ensuite, si j'appelle la page en question directement (localhost:8080/moncontext/faces/web/pages/login/login.xhtml) la page affichée est la bonne mais le style n'est pas le même. Le plus gros symptôme c'est que l'image que j'ai mise en background sur la balise body ne s'affiche pas. Du moins c'est ce que je croyais, mais en fait le navigateur la télécharge bien (merci firebug) et si je fais "afficher l'image de fond" j'ai bien l'image qui apparait.
Le code source généré est exactement le même dans les deux cas. Le fond ne s'affichait pas parce que mes éléments dans la page étaient tous positionnés en absolute. Si je mets du texte en vrac comme ça, cette fois le fond s'affiche bien, mais uniquement derrière le texte. (Dans le premier cas, avec le forward, le fond s'affiche sur la page entière).
J'ai fouillé un peu, et la seule différence que je trouve c'est dans les headers de la réponse, le header Content-type.
Dans le cas du forward, la valeur est "text/html;charset=UTF-8" et dans le deuxième cas, si je mets l'url complète le valeur est "application/xhtml+xml;charset=UTF-8".
Est-ce que quelqu'un sait pourquoi le rendu est différent ?
Partager