将静态HTML(无效XHTML)文件包括到JSF Facelets中

uda*_*day 3 facelets jsf-2

我有以下问题,我们有在远程主机上运行的Web内容管理器(WCM),它负责生成页眉和页脚HTML文件。即header.htmlfooter.html。HTML文件的语法格式不正确,WCM生成的文件具有

  1. 空格字符( )X XHTML中不允许使用。
  2. 非关闭换行符(<br>)标记?在XHTML中无效。

因此,WCM生成的HTML页面可能不是有效的XHTML页面。

我们正在JSF中实现一些应用程序,我们需要在其中包含WCM生成的页眉和页脚文件。我们可以将未格式化的HTML文件包含到我们的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>
Run Code Online (Sandbox Code Playgroud)

小智 5

我想这与以下问题有关:在Facelet模板中包含非Facelet内容

我不建议将XHTML与HTML混合使用,但是大多数情况下,浏览器不会对提到的字符产生任何问题,因此您可以尝试直接使文件满足要求,例如通过

<h:outputText value="#{yourBean.headerCode}" escape="false" />
Run Code Online (Sandbox Code Playgroud)

而YourBean.getHeaderCode()将读出头文件的内容并将其作为String返回。YourBean应该是ApplicationScoped。

更快更好的做法是使WCM生成有效的XHTML。