Синтаксический анализ ошибки /page.xhtml: трассировка ошибки [строка: 42] Ссылка на сущность "nbsp", но не объявленная
Я хотел бы использовать неразрывные пробелы на моей странице JSF. Я знаю, в простом HTML я мог бы использовать
для этого и работает нормально. Тем не менее, когда я ставлю эти
на странице Facelets, он ошибается следующим образом:
Синтаксический анализ ошибки /page.xhtml: трассировка ошибки [строка: 42] Ссылка на сущность "nbsp", но не объявленная.
Как это вызвано и как я могу решить это?
5 ответов
Facelets - это технология представления на основе XML. XML имеет только пять предопределенных сущностей.
не среди них. Он работает только при использовании в простом HTML или в устаревшей JSP (примечание: он не работает в JSPX, поскольку он также основан на XML!).
Чтобы это исправить, вам нужно либо объявить сущность самостоятельно в типе файла XHTML, содержащем
юридическое лицо,
<!DOCTYPE html [
<!ENTITY nbsp " ">
]>
или, лучше, вместо этого используйте десятичную запись (гекса):
  or  
В средней IDE должно быть тривиально выполнять "поиск и замену во всех файлах" и заменять каждый случай
от  
,
Для меня следующий доктайп позволяет
:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Попробуйте использовать &#160;
, Для получения дополнительной информации об объектах вы можете обратиться по ссылке URL HTML ISO-8859-1.
<![CDATA[ ]]>
должно работать нормально. Это не работает внутри значения атрибута, хотя.В качестве альтернативы, пока
&
это предопределенная сущность в XML, вы можете попробовать&nbsp;
- работал для меня с JSP на основе XML. Это должно работать и в атрибутах.
Добавлять
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
в начало файла