【问题标题】:jsf 2 ui:include .html give error "XML Parsing Error: no element found"jsf 2 ui:include .html 给出错误“XML Parsing Error: no element found”
【发布时间】:2013-04-05 03:57:02
【问题描述】:

我在我的页面中包含了 header.html(不是 .xhtml),但是当我预览我的页面时,它给了我错误“XML Parsing Error: no element found”。我知道这是标签没有正确关闭的问题,但是由于我的标题页是 html 文件,而不是 xhtml 文件,它不应该关闭标签,对吗?
如果我关闭 header.html 中的所有元标记,我的页面工作正常,但我想知道如果我将它们包含在 jsf2 中,是否必须正确关闭 html 文件中的所有标记,谢谢。

header.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Header</title>
    <meta name="description" content="">
  </head>
  <body>header content</body>
</html>

welcome1.xhtml

<ui:include src="header.html" />
<p>welcome page</p>

【问题讨论】:

    标签: html jsf-2 xhtml uiinclude


    【解决方案1】:

    Oracle's documentation&lt;ui:include&gt; 用于encapsulate and reuse content among multiple XHTML pagessrc 属性应指向格式良好的 XML 文档。即使您想包含.html 页面,您也需要确保正确关闭所有标签。

    【讨论】:

      【解决方案2】:

      如果您仔细观察,您会在 header.html 中看到结束的 &lt;html&gt; 标记,它应该结束 HTML 文档,正如您在 Structure of an HTML document 中看到的那样。这样,当您在最终视图中包含文件时,您就违反了合同。

      在 JSF 中,最好使用 facelets 的模板选项。例如,在主模板中,您可以创建插入点,如脚本部分,然后在模板客户端页面(最终视图)中定义插入的内容。启动示例可以在in this tutorial by mkyong找到。

      【讨论】:

      • 是的,我在我的项目中使用了模板方式,但我只是没有在这个问题中表现出来。但是,因为这个 header.html 是第三方提供的,所以我不允许修改内容,所以不能放入 我的问题是为什么所有的 html 标签都必须关闭正确地在 header.html 页面中,以便我的欢迎页面可以正常工作?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 2016-09-25
      • 1970-01-01
      • 2013-02-23
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多