Error Parsing /page.xhtml: Error Traced[line: 42] 实体“nbsp”被引用,但未声明
Posted
技术标签:
【中文标题】Error Parsing /page.xhtml: Error Traced[line: 42] 实体“nbsp”被引用,但未声明【英文标题】:Error Parsing /page.xhtml: Error Traced[line: 42] The entity "nbsp" was referenced, but not declared 【发布时间】:2012-10-12 07:34:36 【问题描述】:我想在我的 JSF 页面中使用不间断的空格。我知道,在纯 html 中,我可以为此使用  
并且效果很好。但是,当我将这些  
放入 Facelets 页面时,会出现以下错误:
错误解析 /page.xhtml: Error Traced[line: 42] 实体“nbsp”被引用,但未声明。
这是怎么引起的,我该如何解决?
【问题讨论】:
显示更多代码...您将 
究竟放在哪里?
【参考方案1】:
Facelets 是一种基于 XML 的视图技术。 XML 只有five predefined entities。  
不在其中。它仅在纯 HTML 或旧版 JSP 中使用时才有效(注意:它在 JSPX 中不起作用,因为它也是基于 XML 的!)。
要解决此问题,您需要自己在包含 
实体的 XHTML 文件的 doctype 中声明实体,
<!DOCTYPE html [
<!ENTITY nbsp " ">
]>
或者,最好使用(十六进制)十进制表示法:
  or  
在一般的 IDE 中,执行“在所有文件中查找和替换”并将每次出现的 &nbsp;
替换为 &#xA0;
应该是微不足道的。
【讨论】:
使用十六进制或十进制表示法。 :-)【参考方案2】:对我来说,以下 doctype 启用 &nbsp;
:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
【讨论】:
有了这个我可以做类似添加
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
到文件顶部
【讨论】:
我想知道为什么这会得到两个否定。它可能有点过于简洁,但它是正确的。该实体未在文档类型中定义,它是在使用提供的规范时定义的。一年后,有人发布了完全相同的内容并获得了两次支持。 我同意@Dilapidus,这在 Chrome 和 JBoss EAP 7 以及 Facelets 2.2 版中非常适合我【参考方案4】:<![CDATA[&nbsp;]]>
应该可以正常工作。但是,这在属性值中不起作用。
或者,只要 &amp;
是 XML 中的预定义实体,您可以尝试 &amp;nbsp;
- 为我使用基于 XML 的 JSP。这也应该在属性中起作用。
【讨论】:
【参考方案5】:尝试使用&amp;#160;
。有关实体的更多信息,您可以参考以下网址HTML ISO-8859-1 Reference
【讨论】:
以上是关于Error Parsing /page.xhtml: Error Traced[line: 42] 实体“nbsp”被引用,但未声明的主要内容,如果未能解决你的问题,请参考以下文章
[vue/no-parsing-error] Parsing error: x-invalid-end-tag 提示报错
[vue/no-parsing-error] Parsing error: x-invalid-end-tag 提示报错
error: Error parsing XML: unbound prefix
信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will