Jak wstawić nierozdzielający znak spacji & nbsp; na stronie JSF?

Odpowiedzi:

175

to zadziała

<h:outputText value="&#160;" />
Madhu
źródło
5
Dlaczego jest <h:outputText>wymagane?
aleksander
Rzeczywiście, użycie numerów HTML, a nie innych skrótów html, jest drogą do zrobienia.
Dnl
50

Bezpośrednie podanie numeru HTML załatwiło sprawę:

&#160;
luiggitama
źródło
Och, chcę tylko teraz udzielić odpowiedzi. Cieszę się, że nie nadzorowałem twojego.
aleksander
18

Jeśli korzystasz z biblioteki RichFaces, możesz również użyć tagu rich: spacer, który doda „niewidoczny” obraz o określonej długości i wysokości. Zwykle o wiele łatwiejsze i ładniejsze niż dodawanie ton nbsp ;.

Tam, gdzie chcesz, aby Twoja przestrzeń pokazywała, po prostu dodaj:

<rich:spacer height="1" width="2" />
Chris Dale
źródło
+1, chociaż nie było to do końca zadane tutaj, ale twoja odpowiedź była dla mnie pomocna (jeśli chodzi o tytuł)
stacker
5
to samo tutaj, ten tag istnieje również w PrimeFaces:<p:spacer />
Daniel Szalay,
9

Możesz także użyć primefaces <p:spacer width="10" height="10" />

ihebiheb
źródło
6

W końcu możesz spróbować tego, jeśli po prostu użycie &nbsp;nie powiedzie się ...

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

(tak jak Tom, dodałem spację między &i nbsp;)

Romain Linsolas
źródło
Uważam, że ucieczka jest tak ważna, że ​​może to ustąpić miejsca niezabezpieczonym rozwiązaniom. Rezygnacja ze zmiany znaczenia tylko dla nbsp / innych elementów HTML jest trudna. Poza tym można zapomnieć o „przestrzeni”. Jest to dość rozwlekłe, chociaż istnieją krótsze alternatywy.
Dnl
4

Najłatwiej jest:

<h:outputText value=" " />
Darko
źródło
Moim zdaniem nie jest to najłatwiejsza droga.
aleksander
4

Zauważyłem, że parser narzekałby, gdybym użył &nbsp;podmiotu na mojej stronie. Po krótkich poszukiwaniach dowiedziałem się, że jeśli dodałem deklarację DOCTYPE na początku strony, jednostka była dozwolona. Używam tej deklaracji DOCTYPE:

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

Efektem ubocznym jest to, że wynikowy kod (jak widać przy użyciu funkcji „Wyświetl źródło” przeglądarki internetowej) w rzeczywistości nie zawiera &nbsp;encji. Zamiast tego zawiera rzeczywiste postacie, które reprezentują nierozerwalną przestrzeń. Chociaż to działa, nie jest tym, czego chcę. Nadal szukam sposobu, aby analizator składni nie zastępował jednostki znakiem.

Więcej informacji tutaj: http://java.net/jira/browse/JAVASERVERFACES-1576

Pan Lance E Sloan
źródło
2

Możesz skorzystać z primefacesbiblioteki

 <p:spacer width="10" />
Mohamed Aymen Charrada
źródło
To nie daje odpowiedzi na pytanie. Gdy zdobędziesz wystarczającą reputację , będziesz mógł komentować każdy post ; zamiast tego udziel odpowiedzi, które nie wymagają wyjaśnień od pytającego . - Z recenzji
Luca Detomi
@ihebiheb zabrano +6, nie mów mi, że to źle, bo wiem, że to prawda, po prostu mówisz bla bla ..
Mohamed Aymen Charrada
Twoja odpowiedź została oznaczona jako zbyt krótka, ponieważ nie zawiera szczegółów. Sugeruję dodanie szczegółów, aby użytkownicy mogli zrozumieć, „dlaczego” Twoje rozwiązanie może być dobre, a może najlepsze. Dodanie użytkowników detailsletów dostosowuje Twoje rozwiązanie do nieco innych problemów.
Luca Detomi
1

tylko dodać do opcji: <h:outputText value="&amp;nbsp;" escape="false"/>działało

skorpion
źródło
Uważam, że ucieczka jest tak ważna, że ​​może to ustąpić miejsca niezabezpieczonym rozwiązaniom. Rezygnacja ze zmiany znaczenia tylko dla nbsp / innych elementów HTML jest trudna. Poza tym jest to dość rozwlekłe, podczas gdy istnieją krótsze alternatywy.
Dnl
0

Nie trzeba podawać 160. 141 również zadziała. W polu wartości wprowadź wartość = "& # 141".

Pratik Roy
źródło
-1

Możesz użyć css:

 style="margin-left: 5px;"
Ricardo Barcelar
źródło