javascript - JSF 2.3 与某些没有结束标记的 HTML5 元素不兼容,如链接
问题描述
我有这个用例,其中 index.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>"
但是,JSF 2.3 声明它与 HTML5 兼容。网上有很多关于它的文章。
然后,当我转到 HTML5 链接元素的定义时,它清楚地指出可以使用上面生成的链接元素,这意味着末尾只有“>”,而不是“/>”或完整的结束标记,如'>':
https://html.spec.whatwg.org/multipage/semantics.html#the-link-element
因此,实际上 JavaScript 会按照标准生成正确的 HTML5 语法。显然 JSF 无法处理正确的 HTML5 语法。它不仅发生在 link 元素上,还发生在 img 等......实际上永远不会有内容的元素上。
所以,我的问题是:JSF 2.3 到底是否与 HTML5 不完全兼容,而只是部分兼容?有没有办法绕过 JSF 的这种行为来拒绝 HTML5 兼容的元素,或者我应该配置一些东西?还是我在这里完全错过了一些重要的东西?
知道这一点对我来说很重要,因为我无法控制 JavaScript 框架如何生成 html 文件。最后,它们的格式正确。
解决方案
推荐阅读
- mysql - 我不能加 'č' 'ř' 'ě'
- python - Peewee 联合两个没有连接的表
- python - 舍入问题 - 从纳秒到分钟
- javascript - 我应该为每个请求从 sessionStorage 获取访问令牌吗?
- java - 在 Tomcat 8 和 7 上使用 ServletOutputStream
- java - 在另一台计算机上复制后无法构建 Maven 项目
- excel - 使用 excel Range Find 和 FindNext 遍历一个范围
- python - 最小二乘法给出错误的高度,LLA 到 ECEF 到 Python 中的 LLA
- r - R geom_bar facet_grid 垂直而不是水平
- json - CURL 语法错误