代码之家  ›  专栏  ›  技术社区  ›  onderbewustzijn

JSF 2.3与某些HTML5元素不兼容,而不关闭标签式链接

  •  0
  • onderbewustzijn  · 技术社区  · 5 年前

    我有一个用例,其中有一个索引。xhtml页面由JavaScript框架创建。此页面包含以下元素:

    <link rel="stylesheet" href="/design/style/sheet/css-effects.css">
    

    该页面以以下doctype开头,这是HTML5文档的标准:

    <!DOCTYPE html>
    

    当JSF 2.3解析该文件时,它会生成以下错误:

    javax.servlet.ServletException: Error Parsing /index.xhtml: Error Traced[line: 22] The element type "link" must be terminated by the matching end-tag "</link>"
    

    然而,JSF2.3声明它与HTML5兼容。网上有很多关于它的文章。

    当我接着讨论HTML5链接元素的定义时,它清楚地表明链接元素可以按照上面生成的方式使用,这意味着只使用“>”在结尾,而不是使用“/>”或者像“>”这样的完整结束标记:

    https://html.spec.whatwg.org/multipage/semantics.html#the-link-element

    因此,事实上JavaScript会按照标准生成正确的HTML5语法。显然,JSF无法处理正确的HTML5语法。这不仅发生在链接元素上,也发生在img上,等等。。。事实上永远不会有内容的元素。

    所以,我的问题是:JSF2.3最终是否真的与HTML5不完全兼容,而只是部分兼容?有没有办法绕过JSF的这种行为来拒绝与HTML5兼容的元素,或者我应该配置一些东西?还是我完全错过了一些重要的事情?

    这对我来说很重要,因为我无法控制JavaScript框架如何生成html文件。最后,它们的格式是正确的。

    0 回复  |  直到 5 年前
    推荐文章