Ton*_*ony 5 jsf doctype html-entities jsf-2
在我的Facelets模板中,我使用了XHTML doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)
我想根据一般建议将其更改为HTML5 doctype:
<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)
但是,JSF抛出了一个解析错误:
javax.faces.view.facelets.FaceletException:Error Parsing /template.xhtml:Error Traced [line:42]实体"nbsp"被引用,但未声明.
然后不解析HTML 实体.该实体使用如下:
<p:menuitem value=" My menuitem">
Run Code Online (Sandbox Code Playgroud)
这是怎么造成的,我该如何解决?
HTML5 doctype没有预定义的实体.它假定整个文档已经知道UTF-8.换句话说,您可以"安全地"在HTML5文档中放置真正的非破坏空格字符.然而,由于使用普通的美式键盘以可见的方式输入它并非易事,因此许多开发人员更喜欢使用实体来理解它是可以理解的.
反过来Facelets的支持作为一个基于XML的视图技术只有五个预定义的XML实体 <
,>
,&
,"
和'
.在
不在其中.
您有2个选项(除了第3个选项,只是在文档中直接打印字符):
在doctype中自己声明实体:
<!DOCTYPE html [
<!ENTITY nbsp " ">
]>
Run Code Online (Sandbox Code Playgroud)或者,使用(hexa)十进制表示法:
  or  
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
5083 次 |
最近记录: |