Ich möchte auf meiner JSF-Seite nicht unterbrechende Leerzeichen verwenden. Ich weiß, in einfachem HTML könnte ich das verwenden
und das funktioniert gut. Wenn ich diese jedoch
in eine Facelets-Seite einfüge, tritt folgender Fehler auf:
Fehleranalyse /page.xhtml: Fehler verfolgt [Zeile: 42] Die Entität "nbsp" wurde referenziert, aber nicht deklariert.
Wie wird das verursacht und wie kann ich es lösen?
jsf
jsf-2
facelets
html-entities
Fahim Parkar
quelle
quelle
genau platziert ?Antworten:
Facelets ist eine XML-basierte Ansichtstechnologie. XML hat nur fünf vordefinierte Entitäten . Das
ist nicht unter ihnen. Es funktioniert nur, wenn es in einfachem HTML oder in Legacy-JSP verwendet wird (Hinweis: Es funktioniert nicht in JSPX, da dies auch XML-basiert ist!).Um dies zu beheben, müssen Sie die Entität entweder selbst im Doctype der XHTML-Datei deklarieren, die die
Entität enthält.Oder verwenden Sie stattdessen die (hexa) Dezimalschreibweise:
In einer durchschnittlichen IDE sollte es trivial sein, ein "Suchen und Ersetzen in allen Dateien" durchzuführen und jedes Auftreten von
durch zu ersetzen 
.quelle
Versuchen Sie es mit
 
. Weitere Informationen zu Entitäten finden Sie in der folgenden URL HTML ISO-8859-1 Referenzquelle
<![CDATA[ ]]>
sollte gut funktionieren. Dies funktioniert jedoch nicht innerhalb des Attributwerts.Alternativ können
&
Sie versuchen&nbsp;
, mit XML-basierter JSP für mich zu arbeiten , solange es sich um eine vordefinierte Entität in XML handelt . Dies sollte auch innerhalb von Attributen funktionieren.quelle
Für mich ermöglicht der folgende Doctype
:quelle
hinzufügen
an den Anfang der Datei
quelle