Error Parsing /page.xhtml: Error Traced [baris: 42] Entitas “nbsp” direferensikan, tetapi tidak dideklarasikan


89

Saya ingin menggunakan spasi tanpa putus di halaman JSF saya. Saya tahu, dalam HTML biasa saya dapat menggunakan  untuk ini dan ini berfungsi dengan baik. Namun, ketika saya meletakkannya  di halaman Facelet, maka kesalahannya sebagai berikut:

Error Parsing /page.xhtml: Error Traced [baris: 42] Entitas "nbsp" direferensikan, tetapi tidak dideklarasikan.

Bagaimana ini disebabkan dan bagaimana cara mengatasinya?


tunjukkan beberapa kode lagi ... di mana idi Anda menempatkan itu  persis?
Daniel

Jawaban:


186

Facelet adalah teknologi tampilan berbasis XML. XML hanya memiliki lima entitas yang telah ditentukan sebelumnya . Tidak  ada di antara mereka. Ia hanya berfungsi jika digunakan dalam HTML biasa atau dalam JSP lama (catatan: ia tidak berfungsi di JSPX karena itu juga berbasis XML!).

Untuk memperbaikinya, Anda juga perlu mendeklarasikan entitas itu sendiri di doctype dari file XHTML yang paling berisi  entitas tersebut,

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

atau, lebih baik, gunakan notasi desimal (heksa) sebagai gantinya:

&#xA0; or &#160;

Dalam IDE rata-rata, sebaiknya lakukan "temukan dan ganti di semua file" dan mengganti setiap kemunculan &nbsp;oleh &#xA0;.


3
Gunakan notasi heksadesimal atau desimal. :-)
Nabin


10
  1. <![CDATA[&nbsp;]]>harus bekerja dengan baik. Ini tidak berfungsi di dalam nilai atribut.

  2. Atau, selama &amp;merupakan entitas standar dalam XML, Anda dapat mencoba &amp;nbsp; - bekerja untuk saya dengan JSP berbasis XML. Ini harus bekerja dalam atribut juga.


9

Bagi saya, doctype berikut memungkinkan &nbsp;:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Dengan ini saya dapat melakukan sesuatu seperti <xsl: variable name = "size" select = "substring-before (s: td [3], '& nbsp;')" />
slott

5

Menambahkan

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

ke bagian atas file


4
Mengapa ini mendapatkan dua negatif, saya bertanya-tanya. Ini mungkin agak terlalu ringkas tapi itu benar. Entitas tidak ditentukan di doctype dan ditentukan saat menggunakan spesifikasi yang disediakan. Setahun kemudian, seseorang memposting hal yang persis sama dan mendapat dua suara positif.
Dilapidus

Saya setuju dengan @Dilapidus, ini bekerja sempurna untuk saya di Chrome dan JBoss EAP 7 dan Facelet Version 2.2
JGlass
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.