Como insiro um caractere de espaço sem quebra & nbsp; em uma página JSF?

Respostas:

177

isso vai funcionar

<h:outputText value="&#160;" />
Madhu
fonte
5
Por que é <h:outputText>necessário?
alexander de
Na verdade, usar os números HTML e não outros atalhos de html é o caminho a percorrer.
Dnl
50

Colocar o número HTML diretamente funcionou para mim:

&#160;
luiggitama
fonte
Oh, eu só quero dar a resposta agora. Ainda bem, não supervisionei o seu.
alexander
18

Se você está usando a biblioteca RichFaces, também pode usar a tag rich: spacer que adicionará uma imagem "invisível" com um determinado comprimento e altura. Normalmente muito mais fácil e bonito do que adicionar toneladas de nbsp ;.

Onde você deseja que seu espaço seja exibido, basta adicionar:

<rich:spacer height="1" width="2" />
Chris Dale
fonte
+1 embora isso não tenha sido exatamente perguntado aqui, mas sua resposta foi útil para mim (em relação ao título)
stacker
5
mesmo aqui, esta tag também existe no PrimeFaces:<p:spacer />
Daniel Szalay
9

Você também pode usar faces primárias <p:spacer width="10" height="10" />

ihebiheb
fonte
6

Eventualmente, você pode tentar este, se apenas o uso &nbsp;falhar ...

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

(como Tom, adicionei um espaço entre &e nbsp;)

Romain Linsolas
fonte
Sinto que fugir é tão importante que pode dar lugar a soluções não seguras. Desistir de escapar para apenas um nbsp / outros elementos html é complicado. Além disso, o 'espaço' pode ser esquecido. Isso é bastante prolixo, embora existam alternativas mais curtas.
Dnl
4

A maneira mais fácil é:

<h:outputText value=" " />
Darko
fonte
Não é a maneira mais fácil, na minha opinião.
alexander de
4

Descobri que o analisador reclamaria se eu usasse a &nbsp;entidade na minha página. Depois de um pouco de pesquisa, descobri que se adicionasse uma declaração DOCTYPE ao início da página, a entidade era permitida. Eu uso esta declaração DOCTYPE:

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

Um efeito colateral disso é que o código resultante (conforme visto ao usar o recurso "visualizar código-fonte" de um navegador da web) não contém realmente a &nbsp;entidade. Em vez disso, inclui os caracteres reais que representam um espaço não separável. Embora funcione, não é realmente o que eu quero. Ainda estou procurando uma maneira de fazer com que o analisador não substitua a entidade pelo caractere.

Mais informações aqui: http://java.net/jira/browse/JAVASERVERFACES-1576

Sr. Lance E Sloan
fonte
2

Você pode usar a primefacesbiblioteca

 <p:spacer width="10" />
Mohamed Aymen Charrada
fonte
Isso não fornece uma resposta para a pergunta. Assim que tiver reputação suficiente, você poderá comentar em qualquer postagem ; em vez disso, forneça respostas que não exijam esclarecimentos do autor da pergunta . - Da avaliação
Luca Detomi
@ihebiheb levou +6, não me diga que está errado, porque eu sei que é verdade, basta você dizer blá blá ..
Mohamed Aymen Charrada
Sua resposta foi sinalizada como muito curta porque faltam detalhes. Sugiro que você adicione detalhes para permitir que os usuários entendam "por que" sua solução pode ser boa ou talvez a melhor. A adição de usuários de detailslet adapta sua solução a problemas ligeiramente diferentes.
Luca Detomi
1

apenas para adicionar opções: <h:outputText value="&amp;nbsp;" escape="false"/>funcionou

scorpp
fonte
Eu sinto que escapar é tão importante, que isso pode dar lugar a soluções não seguras. Desistir de escapar para apenas um nbsp / outros elementos html é complicado. Além disso, isso é bastante prolixo, embora existam alternativas mais curtas.
Dnl
0

Não é necessário dar 160. 141 também funcionará. Para o campo de valor, forneça value = "& # 141".

Pratik Roy
fonte
-1

Você pode usar css:

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