Как вставить неразрывный пробел & nbsp; на странице JSF?

Ответы:

175

это будет работать

<h:outputText value="&#160;" />
Мадху
источник
5
Зачем <h:outputText>нужен?
Александр
Действительно, лучше использовать номера HTML, а не другие ярлыки HTML.
Dnl
50

Ввод номера HTML напрямую помог мне:

&#160;
Луиггитама
источник
О, я просто хочу дать ответ прямо сейчас. Рад, что не присматривал за твоей.
Александр
18

Если вы используете библиотеку RichFaces, вы также можете использовать тег rich: spacer, который добавит «невидимое» изображение с заданной длиной и высотой. Обычно намного проще и красивее, чем добавлять тонны nbsp ;.

Там, где вы хотите, чтобы ваше пространство показывалось, просто добавьте:

<rich:spacer height="1" width="2" />
Крис Дейл
источник
+1 Althoug это не совсем спросил здесь, но ваш ответ был полезен для меня (regaring названия)
укладчик
5
то же самое здесь, этот тег также существует в PrimeFaces:<p:spacer />
Daniel Szalay
9

Вы также можете использовать праймфейсы <p:spacer width="10" height="10" />

ихебихеб
источник
6

В конце концов, вы можете попробовать это, если просто использовать &nbsp;не удается ...

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

(как и Том, я добавил пробел между &и nbsp;)

Ромен Линсолас
источник
Я считаю, что побег настолько важен, что может уступить место небезопасным решениям. Отказаться от экранирования только для nbsp / других элементов html сложно. Кроме того, можно забыть про «космос». Это довольно многословно, хотя есть более короткие альтернативы.
Dnl
4

Самый простой способ:

<h:outputText value=" " />
Дарко
источник
На мой взгляд, это не самый простой способ.
Александр
4

Я обнаружил, что синтаксический анализатор будет жаловаться, если я использую &nbsp;объект на своей странице. После небольшого исследования я узнал, что если я добавлю объявление DOCTYPE в начало страницы, сущность будет разрешена. Я использую это объявление DOCTYPE:

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

Побочным эффектом этого является то, что результирующий код (как видно с помощью функции «просмотр исходного кода» веб-браузера) фактически не содержит &nbsp;сущность. Вместо этого он включает фактические символы, которые представляют собой неразрывный пробел. Хотя это работает, я не совсем этого хочу. Я все еще ищу способ заставить парсер не заменять сущность на символ.

Дополнительная информация здесь: http://java.net/jira/browse/JAVASERVERFACES-1576

Г-н Лэнс И. Слоан
источник
2

Вы можете использовать primefacesбиблиотеку

 <p:spacer width="10" />
Мохамед Аймен Чаррада
источник
Это не дает ответа на вопрос. Как только у вас будет достаточная репутация, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют пояснений от спрашивающего . - Из
отзыва
@ihebiheb взял +6, не говори мне, что это неправильно, потому что я знаю, что это правда, просто скажи бла-бла ..
Мохамед Аймен Чаррада
Ваш ответ был помечен как слишком короткий, потому что в нем отсутствуют подробности. Я предлагаю вам добавить детали, чтобы пользователи могли понять, «почему» ваше решение может быть хорошим или, возможно, лучшим. Добавление деталей позволяет пользователям адаптировать ваше решение к немного разным задачам.
Лука Детоми,
1

просто добавить к опциям: <h:outputText value="&amp;nbsp;" escape="false"/>работал

скорп
источник
Я считаю, что побег настолько важен, что может уступить место небезопасным решениям. Отказаться от экранирования только для nbsp / других элементов html сложно. Кроме того, это довольно многословно, хотя есть и более короткие альтернативы.
Dnl
0

Необязательно давать 160. 141 тоже будет работать. Для поля значения укажите value = "& # 141".

Пратик Рой
источник
-1

Вы можете использовать css:

 style="margin-left: 5px;"
Рикардо Барселар
источник