Hata Ayrıştırma /page.xhtml: Hata İzlendi [satır: 42] "nbsp" varlığına başvuruldu, ancak bildirilmedi


89

JSF sayfamda bölünmeyen boşluklar kullanmak istiyorum. Biliyorum, düz HTML'de bunun için kullanabilirim  ve bu iyi çalışıyor. Ancak, bunları  bir Facelets sayfasına koyduğumda , aşağıdaki gibi hata veriyor:

/Page.xhtml Ayrıştırma Hatası: Hata İzlendi [satır: 42] "nbsp" varlığına başvuruldu, ancak bildirilmedi.

Bu nasıl ortaya çıkıyor ve bunu nasıl çözebilirim?


biraz daha kod göster ... bunu  tam olarak nereye yerleştirdin ?
Daniel

Yanıtlar:


186

Facelets, XML tabanlı bir görünüm teknolojisidir. XML'de yalnızca beş önceden tanımlanmış varlık vardır . Aralarında  değil. Yalnızca düz HTML'de veya eski JSP'de kullanıldığında çalışır (not: JSPX'te çalışmaz, çünkü bu da XML tabanlı!).

Bunu düzeltmek için, varlığı içeren XHTML dosyasının belge türünde varlığı kendiniz bildirmeniz gerekir  ,

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

veya daha iyisi, bunun yerine (hexa) ondalık gösterimi kullanın:

&#xA0; or &#160;

Ortalama bir IDE'de, "tüm dosyalarda bul ve değiştir" yapmak ve her geçtiği yeri &nbsp;by ile değiştirmek önemsiz olmalıdır &#xA0;.


3
Onaltılık veya ondalık gösterimi kullanın. :-)
Nabin


10
  1. <![CDATA[&nbsp;]]>iyi çalışmalı. Bu değil de, özellik değeri içindeki çalışmalarını.

  2. Alternatif olarak &amp;, XML'de önceden tanımlanmış bir varlık olduğu sürece deneyebilirsiniz &amp;nbsp; - benim için XML tabanlı JSP ile çalıştı. Bu, öznitelikler içinde de çalışmalıdır.


9

Benim için aşağıdaki belge türü etkinleştirir &nbsp;:

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

Bununla, <xsl: variable name = "size" select = "substring-before (s: td [3], '& nbsp;')" />
slott

5

Ekle

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

dosyanın en üstüne


4
Acaba bu neden iki negatif aldı? Belki biraz fazla özlü ama doğru. Varlık, belge türünde tanımlanmadı ve sağlanan spesifikasyon kullanılırken tanımlandı. Bir yıl sonra, birisi aynı şeyi gönderiyor ve iki olumlu oy alıyor.
Dilapidus

@Dilapidus'a katılıyorum, bu benim için mükemmel çalıştı Chrome ve JBoss EAP 7 ve Facelets Sürüm 2.2
JGlass
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.