我用的是两个<svg>
a 内的元素<ul>
.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
...
<ul>
<li>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" >...</svg>
</li>
<li>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" >...</svg>
</li>
</ul>
...
</html>
JSF 正在吞下第一个关闭</li>
当它渲染 HTML 时。
这是一个错误还是我的 xhtml 无效?
我正在使用 Mojarra 2.1.7。
Update:正如 @BalusC 建议的那样,我将此报告给莫哈拉人.
更新2:用 Mojarra 修复2.1.26 and 2.2.3
我可以在 2.1.24 中重现它。我不确定这是否是 Facelets 的 SAX 解析器中的一个错误,但它看起来确实很像在嵌套命名空间中混淆了。你和<svg xmlns>
声明一个新的默认 XML 命名空间,该命名空间似乎覆盖了<html xmlns>
一个用于 HTML 标签。我建议report这个问题给 Mojarra 的朋友们。
无论如何,在 Facelets 中使用 SVG 的正确方法是将整个<svg>
内容成自己的.svg
文件并通过以下方式包含它<ui:include>
.
<ul>
<li>
<ui:include src="/resources/svg/one.svg" />
</li>
<li>
<ui:include src="/resources/svg/two.svg" />
</li>
</ul>
这样命名空间就可以正常工作。额外的好处是,您的 SVG 可以立即重复使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)