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