错误分析/page.xhtml:跟踪错误实体“nbsp”被引用,但未声明

我想在我的JSF页面中使用不间断的空格。 我知道,在纯HTML中,我可以使用  为此,这工作正常。 但是,当我把这些  在一个Facelets页面中,那么它的错误如下:

错误分析/page.xhtml:错误跟踪[line:42]实体“nbsp”被引用,但未声明。

这是如何造成的,我该如何解决?

Facelets是基于XML的视图技术。 XML只有五个预定义的实体 。   不在其中。 它只在纯HTML或旧式JSP中使用(注意:它不能在JSPX中工作,因为这也是基于XML的!)。

要解决这个问题,你需要自己在doctype中声明实体,

 <!DOCTYPE html [ <!ENTITY nbsp "&#160;"> ]> 

或者使用(hex)十进制表示法代替:

 &#xA0; or &#160; 
  1. <![CDATA[&nbsp;]]>应该可以正常工作。 但是,这在属性值内不起作用

  2. 或者,只要&amp; 是XML中的一个预定义的实体,你可以试试&amp;nbsp; – 为基于XML的JSP工作。 这也应该在属性内工作。

尝试使用&amp;#160; 。 有关实体的更多信息,您可以参考以下URL HTML ISO-8859-1参考

对于我来说,以下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"> 

到文件的顶部