Сущности XML не отображаются

С помощью h:outputText Я хочу отобразить стрелку влево ← используя ←, Но он просто не отображается на странице (даже в выводе элемента inspect). Что я сделал не так?

<h:outputText value="Overtime (Remaining &larr; New)" />

1 ответ

Решение

Корень проблемы в том, &larr; не является сущностью XML. Это HTML-сущность.

Facelets основаны на XML, и XML имеет только 5 предопределенных объектов: &amp;, &quot;, &apos;, &lt;, &gt;, Все остальные, о которых вы, возможно, видели или слышали, являются HTML-объектами и не поддерживаются в XML.

Исторически HTML-объекты использовались для поддержки "специальных" символов в любом случае при использовании кодировок более низкого качества, таких как ISO-XXX вместо UTF-XXX. Но с момента появления и всемирной поддержки кодировки символов UTF-XXX нам больше не нужны эти HTML-сущности.

XML поддерживает UTF-8, поэтому просто напечатайте сразу.

<h:outputText value="Overtime (Remaining ← New)" />

Или даже без целого <h:outputText> поскольку вам на самом деле ничего не нужно конвертировать здесь.

Overtime (Remaining ← New)

Смотрите также:

Другие вопросы по тегам