Eu gostaria de usar espaços não separáveis na minha página JSF. Eu sei, em HTML simples eu poderia usar
para isso e funciona bem. No entanto, quando os coloco
em uma página Facelets, ocorre o seguinte erro:
Análise de erro /page.xhtml: Erro rastreado [linha: 42] A entidade "nbsp" foi referenciada, mas não declarada.
Como isso é causado e como posso resolver isso?
jsf
jsf-2
facelets
html-entities
Fahim Parkar
fonte
fonte
exatamente?Respostas:
Facelets é uma tecnologia de visualização baseada em XML. XML tem apenas cinco entidades predefinidas . O
não está entre eles. Funciona apenas quando usado em HTML simples ou em JSP legado (nota: não funciona em JSPX, pois também é baseado em XML!).Para corrigir isso, você mesmo precisa declarar a entidade no doctype do próprio arquivo XHTML que contém a
entidade,ou, melhor, use a notação decimal (hexa) em vez disso:
Em um IDE comum, deve ser trivial executar um "localizar e substituir em todos os arquivos" e substituir todas as ocorrências de
por 
.fonte
Tente usar
 
. para obter mais informações sobre entidades, você pode consultar a seguir url HTML ISO-8859-1 Referencefonte
<![CDATA[ ]]>
deve funcionar bem. Este não trabalho dentro de valor do atributo, no entanto.Como alternativa, desde que
&
seja uma entidade predefinida em XML, você poderia tentar&nbsp;
- funcionou para mim com JSP baseado em XML. Isso deve funcionar com os atributos também.fonte
Para mim, o seguinte doctype ativa
:fonte
adicionar
para o topo do arquivo
fonte