JSF ページで改行しないスペースを使用したいと考えています。プレーンな HTML
でこれを使用できることはわかっていますが、これは正常に機能します。ただし、それら
を Facelets ページに配置すると、次のようにエラーになります。
Error Parsing /page.xhtml: Error Traced [line: 42] エンティティ「nbsp」が参照されましたが、宣言されていません。
これはどのように発生し、どうすれば解決できますか?
JSF ページで改行しないスペースを使用したいと考えています。プレーンな HTML
でこれを使用できることはわかっていますが、これは正常に機能します。ただし、それら
を Facelets ページに配置すると、次のようにエラーになります。
Error Parsing /page.xhtml: Error Traced [line: 42] エンティティ「nbsp」が参照されましたが、宣言されていません。
これはどのように発生し、どうすれば解決できますか?
Facelets は、XML ベースのビュー テクノロジーです。XML には、定義済みのエンティティが 5 つしかありません。その
中にはありません。プレーンな HTML またはレガシー JSP で使用された場合にのみ機能します (注: JSPX も XML ベースであるため、JSPX では機能しません!)。
これを修正するには、エンティティを含む XHTML ファイルの doctype でエンティティを自分で宣言する必要があります。
<!DOCTYPE html [
<!ENTITY nbsp " ">
]>
または、代わりに (16 進数) 表記を使用することをお勧めします。
  or  
平均的な IDE では、「すべてのファイルを検索して置換」を実行し、出現するすべての
byを置換するのは簡単 
です。
を使ってみてください&#160;
。エンティティの詳細については、次の URL HTML ISO-8859-1 リファレンスを参照してください。
私にとっては、次のdoctypeが有効になります
:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<![CDATA[ ]]>
正常に動作するはずです。ただし、これは属性値内では機能しません。
または、XML で事前定義されたエンティティである限り、&
試すことができます&nbsp;
- XML ベースの JSP でうまくいきました。これは、属性内でも機能するはずです。