在我的 Facelets 模板中,我使用了 XHTML 文档类型:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
我想将其更改为 HTML5 doctype根据一般建议:
<!DOCTYPE html>
但是,JSF 抛出了解析错误:
javax.faces.view.facelets.FaceletException: Error Parsing /template.xhtml: Error Traced[line: 42] The entity "nbsp" was referenced, but not declared.
HTML
实体不会被解析。该实体的使用方式如下:
<p:menuitem value=" My menuitem">
这是怎么造成的,如何解决?
最佳答案
HTML5 文档类型没有预定义实体。它假定整个文档已经支持 UTF-8。换句话说,您可以“安全”地将真正的不间断空格字符放入 HTML5 文档中。然而,由于使用常规美国键盘以可见的方式输入它并不简单,因此许多开发人员更喜欢使用实体来输入它是可以理解的。
Facelets 仅支持作为基于 XML 的 View 技术 five predefined XML entities <
、>
、&
、"
和 '
。
不在其中。
您有 2 个选项(除了直接在文档中打印字符的第三个选项之外):
在文档类型中自行声明
<!DOCTYPE html [ <!ENTITY nbsp " "> ]>
或者,使用(十六进制)十进制表示法:
  or  
关于jsf - javax.faces.view.facelets.FaceletException : Error Parsing/template. xhtml : The entity "nbsp" was referenced, 但未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754475/