Wie füge ich ein nicht unterbrechendes Leerzeichen ein? auf einer JSF-Seite?

Antworten:

174

das wird funktionieren

<h:outputText value="&#160;" />
Madhu
quelle
5
Warum ist ein <h:outputText>erforderlich?
Alexander
In der Tat ist die Verwendung der HTML-Nummern und nicht anderer HTML-Verknüpfungen der richtige Weg.
Dnl
49

Das direkte Eingeben der HTML-Nummer hat für mich den Trick getan:

&#160;
Luiggitama
quelle
Oh, ich möchte jetzt nur die Antwort geben. Ich bin froh, dass ich deine nicht beaufsichtigt habe.
Alexander
18

Wenn Sie die RichFaces-Bibliothek verwenden, können Sie auch das Tag rich: spacer verwenden, das ein "unsichtbares" Bild mit einer bestimmten Länge und Höhe hinzufügt. Normalerweise viel einfacher und hübscher als Tonnen von Esslöffel hinzuzufügen;.

Wo Sie möchten, dass Ihr Raum angezeigt wird, fügen Sie einfach Folgendes hinzu:

<rich:spacer height="1" width="2" />
Chris Dale
quelle
+1 obwohl dies hier nicht genau gefragt wurde, aber Ihre Antwort war hilfreich für mich (unter Berücksichtigung des Titels)
Stapler
5
Das gleiche hier, dieses Tag existiert auch in PrimeFaces:<p:spacer />
Daniel Szalay
9

Sie können auch Primefaces verwenden <p:spacer width="10" height="10" />

ihebiheb
quelle
6

Schließlich können Sie diesen versuchen, wenn nur die Verwendung &nbsp;fehlschlägt ...

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

(Wie Tom habe ich ein Leerzeichen zwischen &und hinzugefügt nbsp;)

Romain Linsolas
quelle
Ich halte das Entkommen für so wichtig, dass dies zu nicht sicheren Lösungen führen könnte. Es ist schwierig, die Flucht nur für ein nbsp / andere HTML-Elemente aufzugeben. Außerdem könnte der "Raum" vergessen werden. Dies ist ziemlich ausführlich, während es kürzere Alternativen gibt.
Dnl
4

Der einfachste Weg ist:

<h:outputText value=" " />
Darko
quelle
Meiner Meinung nach ist dies nicht der einfachste Weg.
Alexander
4

Ich habe festgestellt, dass sich der Parser beschweren würde, wenn ich die &nbsp;Entität auf meiner Seite verwenden würde. Nach ein wenig Recherche stellte ich fest, dass die Entität zulässig war, wenn ich am Anfang der Seite eine DOCTYPE-Deklaration hinzufügte. Ich benutze diese DOCTYPE-Deklaration:

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

Ein Nebeneffekt davon ist, dass der resultierende Code (wie durch die Verwendung der Funktion "Quelltext anzeigen" eines Webbrowsers angezeigt) die &nbsp;Entität nicht tatsächlich enthält . Es enthält stattdessen die tatsächlichen Zeichen, die ein nicht unterbrechendes Leerzeichen darstellen. Obwohl es funktioniert, ist es nicht wirklich das, was ich will. Ich suche immer noch nach einer Möglichkeit, den Parser dazu zu bringen, die Entität nicht durch das Zeichen zu ersetzen.

Weitere Informationen finden Sie hier: http://java.net/jira/browse/JAVASERVERFACES-1576

LS
quelle
2

Sie können die primefacesBibliothek verwenden

 <p:spacer width="10" />
Mohamed Aymen Charrada
quelle
Dies gibt keine Antwort auf die Frage. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten, die nicht vom Fragesteller geklärt werden müssen . - Aus der Rezension
Luca Detomi
@ihebiheb war nehmen +6, sag mir nicht, dass es falsch ist, weil ich weiß, dass es wahr ist, nur du sagst
bla bla
Ihre Antwort wurde als zu kurz markiert, da es an Details mangelt. Ich empfehle Ihnen, Details hinzuzufügen, damit Benutzer verstehen, warum Ihre Lösung eine gute oder vielleicht die beste sein könnte. Durch Hinzufügen von Detailslet-Benutzern wird Ihre Lösung an leicht unterschiedliche Probleme angepasst.
Luca Detomi
1

Nur um Optionen hinzuzufügen: <h:outputText value="&amp;nbsp;" escape="false"/>funktioniert

scorpp
quelle
Ich halte das Entkommen für so wichtig, dass dies zu nicht sicheren Lösungen führen könnte. Es ist schwierig, die Flucht nur für ein nbsp / andere HTML-Elemente aufzugeben. Außerdem ist dies ziemlich ausführlich, während es kürzere Alternativen gibt.
Dnl
0

Nicht notwendig, um 160 zu geben. 141 wird auch funktionieren. Geben Sie für das Wertefeld value = "& # 141" an.

Pratik Roy
quelle
-1

Sie können CSS verwenden:

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