Inclure du code HTML statique (non valide XHTML) fichier JSF Facelets
J'ai le problème suivant, Nous avons web gestionnaire de contenu (WCM) en cours d'exécution sur l'hôte distant,
qui est responsable de la génération d'en-tête et pied de page des fichiers HTML.
c'est à dire header.html
, footer.html
.
Les fichiers HTML sont pas correctement formatés syntaxe sage,
WCM fichiers générés ont
- Caractère espace (
) il n'est pas permis dans le XHTML. - Non Fermeture de saut de ligne (
<br>
) tags il n'est pas valide en XHTML.
De sorte que le WCM pages HTML générées peut-être pas valide XHTML pages.
Nous sommes la mise en œuvre de certaines de nos applications JSF,
où nous avons besoin d'inclure le WCM généré en-tête et pied de page des fichiers.
Peut-on inclure la non-formaté en HTML des fichiers dans nos fichiers XHTML?
commonTemplate.xhtml
<html>
<head>
..........;
</head>
<body>
<ui:include src="remote_host/header.html" />
<ui:insert name="commonBodyContent" />
<ui:include src="remote_host/footer.html" />
</body>
</html>
Peut-être un doublon: stackoverflow.com/questions/7028728/...
OriginalL'auteur uday | 2012-08-07
Vous devez vous connecter pour publier un commentaire.
Je suppose que c'est lié à cette question: Non Facelet contenu dans une Facelet modèle
Je ne recommande pas de mélange avec HTML, XHTML, mais plus que probablement, les navigateurs n'aurez pas de problèmes avec les caractères susmentionnés, par conséquent, vous pouvez essayer de directement de rendre le fichier contenu, par exemple en
Alors Que YourBean.getHeaderCode() lecture du fichier d'en-tête du contenu et de la retourner comme une Chaîne de caractères. YourBean devrait être ApplicationScoped.
Plus rapidement et le mieux serait d'obtenir le WCM générer valide XHTML.
Ohh j'ai besoin de lire headerCode à une variable de type string ? Mais notre WCM va générer l'en-tête & pied de page de contenu pour toutes les 4 heures, ne puis-je pas simplement inclure la télécommande fichier html.
Il doit être valide XHTML depuis le composant ne peut pas être construit autrement. Avec la solution fournie, JSF ne va pas créer un composant UIComponent pour chaque élément HTML de votre en-tête, mais seulement pour les outputText balise (en fait, cela pourrait rendre l'ensemble de votre demande plus rapidement si vous les mettre en cache les résultats). Dans votre application étendue de haricots, vous pouvez définir un timestamp à chaque fois que vous mettre en cache le résultat et de réinitialiser le cache après 4 heures. De Plus, vous pouvez remplacer des caractères non valides dans le présent code, de sorte que vous avez pur XHTML dans le rendu de la sortie.
C'est juste génial. J'essayais de trouver une solution. Merci
OriginalL'auteur Ingo