¿Cómo inserto un carácter de espacio sin interrupciones & nbsp; en una página JSF?

Respuestas:

175

esto funcionará

<h:outputText value="&#160;" />
Madhu
fuente
5
¿Por qué es <h:outputText>obligatorio?
alexander
De hecho, usar los números HTML y no otros atajos html es el camino a seguir.
Dnl
50

Poner el número HTML directamente hizo el truco para mí:

&#160;
luiggitama
fuente
Oh, solo quiero dar la respuesta ahora mismo. Me alegro, no he supervisado el tuyo.
Alexander
18

Si está usando la biblioteca RichFaces, también puede usar la etiqueta rich: spacer que agregará una imagen "invisible" con una longitud y altura determinadas. Por lo general, es mucho más fácil y bonito que agregar toneladas de nbsp ;.

Donde desea que se muestre su espacio, simplemente agregue:

<rich:spacer height="1" width="2" />
Chris Dale
fuente
+1 aunque esto no fue preguntado exactamente aquí, pero su respuesta fue útil para mí (reparó el título)
apilador
5
Lo mismo aquí, esta etiqueta también existe en PrimeFaces:<p:spacer />
Daniel Szalay
9

También puedes usar primefaces <p:spacer width="10" height="10" />

ihebiheb
fuente
6

Eventualmente, puede probar este, si solo el uso &nbsp;falla ...

<h:outputText value="& nbsp;" escape="false"/>

(como Tom, agregué un espacio entre &y nbsp;)

Romain Linsolas
fuente
Siento que escapar es tan importante que esto podría dar lugar a soluciones inseguras. Renunciar a escapar por solo un nbsp / otros elementos html es complicado. Además, el "espacio" podría olvidarse. Esto es bastante detallado, mientras que hay alternativas más breves.
Dnl
4

La forma más sencilla es:

<h:outputText value=" " />
Darko
fuente
No es la forma más fácil, en mi opinión.
alexander
4

Descubrí que el analizador se quejaría si usaba la &nbsp;entidad en mi página. Después de investigar un poco, supe que si agregué una declaración DOCTYPE al principio de la página, la entidad estaba permitida. Utilizo esta declaración DOCTYPE:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Un efecto secundario de esto es que el código resultante (como se ve al usar la función "ver código fuente" de un navegador web) en realidad no contiene la &nbsp;entidad. En su lugar, incluye los caracteres reales que representan un espacio que no se rompe. Aunque funciona, no es realmente lo que quiero. Todavía estoy buscando una forma de hacer que el analizador no reemplace la entidad con el carácter.

Más información aquí: http://java.net/jira/browse/JAVASERVERFACES-1576

Sr. Lance E Sloan
fuente
2

Puedes usar la primefacesbiblioteca

 <p:spacer width="10" />
Mohamed Aymen Charrada
fuente
Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente reputación , podrá comentar en cualquier publicación ; en su lugar, proporcione respuestas que no requieran aclaración por parte del autor de la pregunta . - De la revisión
Luca Detomi
@ihebiheb se tomó +6, no me digas que está mal, porque sé que es cierto, solo di bla bla ...
Mohamed Aymen Charrada
Tu respuesta se marcó como demasiado corta porque carece de detalles. Le sugiero que agregue detalles para que los usuarios comprendan "por qué" su solución podría ser buena o tal vez la mejor. Agregar detalles permite a los usuarios adaptar su solución a problemas ligeramente diferentes.
Luca Detomi
1

solo para agregar a las opciones: <h:outputText value="&amp;nbsp;" escape="false"/>funcionó

scorpp
fuente
Siento que escapar es tan importante, que esto podría dar paso a soluciones inseguras. Renunciar a escapar por solo un nbsp / otros elementos html es complicado. Además, esto es bastante detallado, mientras que hay alternativas más cortas.
Dnl
0

No es necesario dar 160. 141 también funcionará. Para el campo de valor, proporcione value = "& # 141".

Pratik Roy
fuente
-1

Puedes usar css:

 style="margin-left: 5px;"
Ricardo Barcelar
fuente