Me gustaría usar espacios que no se rompan en mi página JSF. Lo sé, en HTML simple que podría usar
para esto y esto funciona bien. Sin embargo, cuando los pongo
en una página de Facelets, se produce un error de la siguiente manera:
Error al analizar /page.xhtml: Error rastreada [línea: 42] Se hizo referencia a la entidad "nbsp", pero no se declaró.
¿Cómo se produce esto y cómo puedo solucionarlo?
jsf
jsf-2
facelets
html-entities
Fahim Parkar
fuente
fuente
exactamente?Respuestas:
Facelets es una tecnología de visualización basada en XML. XML tiene solo cinco entidades predefinidas . El
no está entre ellos. Solo funciona cuando se usa en HTML simple o en JSP heredado (nota: no funciona en JSPX ya que también está basado en XML).Para solucionar esto, debe declarar la entidad usted mismo en el tipo de documento del mismo archivo XHTML que contiene la
entidad,<!DOCTYPE html [ <!ENTITY nbsp " "> ]>
o, mejor, use la notación decimal (hexa) en su lugar:
En un IDE promedio, debería ser trivial realizar un "buscar y reemplazar en todos los archivos" y reemplazar cada aparición de
por 
.fuente
Intente usar
&#160;
. para obtener más información sobre las entidades, puede consultar la siguiente URL HTML ISO-8859-1 Referenciafuente
<![CDATA[ ]]>
debería funcionar bien. Sin embargo, esto no funciona dentro del valor del atributo.Alternativamente, siempre que
&
sea una entidad predefinida en XML, podría intentarlo&nbsp;
, funcionó para mí con JSP basado en XML. Esto también debería funcionar dentro de los atributos.fuente
Para mí, el siguiente doctype habilita
:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
fuente
añadir
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
al principio del archivo
fuente