JSFページで改行しないスペースを使用したいと思います。プレーンHTMLでは
これとこれはうまく機能します。しかし、それらを置くと_
Faceletsページで、次のようにエラーが発生します。
/page.xhtmlの解析エラー:エラートレース[line:42]エンティティ「nbsp」が参照されましたが、宣言されていません。
これはどのように引き起こされ、どうすれば解決できますか?
Faceletsは、XMLベースのビューテクノロジーです。 XMLには 事前定義された5つのエンティティ のみがあります。
はその中にはありません。これは、プレーンHTMLまたはレガシーJSPで使用された場合にのみ機能します(注:JSPXでも機能しません。これはXMLベースでもあるためです!)。
これを修正するには、
エンティティを含むXHTMLファイルのdoctypeでエンティティを自分で宣言する必要があります。
<!DOCTYPE html [
<!ENTITY nbsp " ">
]>
または、代わりに(hexa)decimal notationを使用してください:
  or  
平均IDEでは、「すべてのファイルの検索と置換」を実行し、すべての
を 
で置換するのは簡単です。
&#160;
を使用してみてください。エンティティの詳細については、次のURLを参照してください HTML ISO-8859-1リファレンス
<![CDATA[ ]]>
は正常に動作するはずです。ただし、このしない属性値内で動作します。
または、&
はXMLの定義済みエンティティです。&nbsp;
-私はXMLベースのJSPで働いていました。これは属性内でも機能するはずです。
私にとって、次のDoctypeは
を有効にします:
<!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">
ファイルの先頭へ