Comment insérer un espace insécable & nbsp; dans une page JSF?

Réponses:

175

cela fonctionnera

<h:outputText value="&#160;" />
Madhu
la source
5
Pourquoi est-ce <h:outputText>nécessaire?
alexander
En effet, utiliser les numéros HTML et pas d'autres raccourcis html est la voie à suivre.
Dnl
50

Mettre le numéro HTML directement a fait l'affaire pour moi:

&#160;
Luiggitama
la source
Oh, je veux juste donner la réponse maintenant. Heureux, je n'ai pas supervisé le vôtre.
alexander
18

Si vous utilisez la bibliothèque RichFaces, vous pouvez également utiliser la balise rich: spacer qui ajoutera une image "invisible" avec une longueur et une hauteur données. Habituellement beaucoup plus facile et plus joli que d'ajouter des tonnes de nbsp ;.

Là où vous voulez que votre espace vous montre, ajoutez simplement:

<rich:spacer height="1" width="2" />
Chris Dale
la source
+1 bien que cela n'ait pas été exactement demandé ici, mais votre réponse m'a été utile (en ce qui concerne le titre)
stacker
5
même ici, ce tag existe aussi dans PrimeFaces:<p:spacer />
Daniel Szalay
9

Vous pouvez également utiliser primefaces <p:spacer width="10" height="10" />

ihebiheb
la source
6

Finalement, vous pouvez essayer celui-ci, si la simple utilisation &nbsp;échoue ...

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

(comme Tom, j'ai ajouté un espace entre &et nbsp;)

Romain Linsolas
la source
Je pense que la fuite est si importante que cela pourrait céder la place à des solutions non sécurisées. Renoncer à s'échapper pour seulement un nbsp / autres éléments html est délicat. En outre, l '«espace» pourrait être oublié. C'est assez verbeux, alors qu'il existe des alternatives plus courtes.
Dnl
4

Le moyen le plus simple est:

<h:outputText value=" " />
Darko
la source
Ce n'est pas le moyen le plus simple, à mon avis.
alexander
4

J'ai trouvé que l'analyseur se plaindrait si j'utilisais le &nbsp; entité dans ma page. Après quelques recherches, j'ai appris que si j'ajoutais une déclaration DOCTYPE au début de la page, l'entité était autorisée. J'utilise cette déclaration DOCTYPE:

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

Un effet secondaire de ceci est que le code résultant (comme vu en utilisant la fonction "afficher la source" d'un navigateur Web) ne contient pas réellement l' &nbsp;entité. Il inclut à la place les caractères réels qui représentent un espace insécable. Bien que cela fonctionne, ce n'est pas vraiment ce que je veux. Je cherche toujours un moyen de faire en sorte que l'analyseur ne remplace pas l'entité par le caractère.

Plus d'informations ici: http://java.net/jira/browse/JAVASERVERFACES-1576

M. Lance E Sloan
la source
2

Vous pouvez utiliser la primefacesbibliothèque

 <p:spacer width="10" />
Mohamed Aymen Charrada
la source
Cela ne répond pas à la question. Une fois que vous aurez une réputation suffisante, vous pourrez commenter n'importe quel message ; à la place, fournissez des réponses qui ne nécessitent pas de clarification de la part du demandeur . - De l'avis
Luca Detomi
@ihebiheb était prendre +6, ne me dis pas que c'est faux, parce que je sais que c'est vrai, dis juste bla bla ..
Mohamed Aymen Charrada
Votre réponse a été signalée comme trop courte, car elle manque de détails. Je vous suggère d'ajouter des détails pour permettre aux utilisateurs de comprendre «pourquoi» votre solution pourrait être bonne ou peut-être la meilleure. L'ajout d'utilisateurs de detailslet adaptent votre solution à des problèmes légèrement différents.
Luca Detomi
1

juste pour ajouter aux options: <h:outputText value="&amp;nbsp;" escape="false"/>travaillé

scorpp
la source
Je pense que la fuite est si importante que cela pourrait céder la place à des solutions non sécurisées. Renoncer à s'échapper pour seulement un nbsp / autres éléments html est délicat. De plus, c'est assez verbeux, alors qu'il existe des alternatives plus courtes.
Dnl
0

Pas nécessaire de donner 160. 141 fonctionnera également. Pour le champ de valeur, indiquez value = "& # 141".

Pratik Roy
la source
-1

Vous pouvez utiliser css:

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