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


85

Как вставить неразрывный пробел на страницу JSF, как в HTML  ? Есть ли такой тег в JSF?


2
Связанный (и технически дубликат с гораздо лучшим объяснением): Анализ ошибок /page.xhtml: Error Traced (строка: 42) На объект «nbsp» была
сделана

Ответы:


175

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

<h:outputText value="&#160;" />

5
Зачем <h:outputText>нужен?
Александр

Действительно, лучше использовать номера HTML, а не другие ярлыки HTML.
Dnl


18

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

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

<rich:spacer height="1" width="2" />

+1 Althoug это не совсем спросил здесь, но ваш ответ был полезен для меня (regaring названия)
укладчик

5
то же самое здесь, этот тег также существует в PrimeFaces:<p:spacer />
Daniel Szalay


6

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

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

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


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


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".


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.