Facelets основан на XML и обрабатывается синтаксическим анализатором XML. —
является сущностью HTML и не распознается в XML. Только пять из перечисленных на этой странице Википедии, "
, &
, '
, <
и >
, распознаются в XML.
Facelets/XML по умолчанию уже использует UTF-8, а объекты HTML в основном являются пережитком эпохи до UTF-8 и не нужны в документах UTF-8, поэтому вы можете просто поместить фактический символ в виде простого/незакодированного в шаблон (при условии что редактор может сохранить файл как UTF-8).
Другими словами, просто настроить
<h:link value="#{somethingHere} — #{anotherHere}">
to
<h:link value="#{somethingHere} — #{anotherHere}">
Если по какой-то причине это невозможно, то вы можете вместо этого использовать числовую ссылку на символ в формате &#nnnn;
, подобно тому, как можно было бы использовать  
для представления
в XML. Ссылку на числовой символ можно найти на fileformat.info: Символ Unicode 'EM DASH ' (U+2014)
Кодировки
Объект HTML (десятичный) —
Итак, это должно сделать для вас:
<h:link value="#{somethingHere} — #{anotherHere}">
Альтернативой, которая должна больше соответствовать точному сообщению об ошибке, является явное объявление ссылки на сущность в типе документа.
<!DOCTYPE html [
<!ENTITY mdash "—">
]>
Но это не общая рекомендация/подход, поскольку вам нужно будет повторять это для каждого отдельного XML-файла, в котором используется символ.
person
BalusC
schedule
16.08.2012