Quebra de linha no outputText

6 respostas
shadowzaum

Boa tarde pessoal…

depois de muito pesquisar sobre como fazer a quebra de linha de uma String recuperada do banco, descobri sobre a tag html

, que mantem as quebras de linha do texto e tals… Como no exemplo do link abaixo
http://www.tiexpert.net/programacao/web/html/pre.php

Bom porem agora o meu problema é outro. Ele funciona corretamente no Firefox, não sei quanto aos outros browsers, porem no Google Chrome ele da um bug e não quebra a linha, ele mantem a mesma linha até encontrar uma quebra de linha.

Na pagina esta da seguinte forma:

<pre width="100%" style="font-family: 'arial', cursive;">
	<h:outputText value="#{item.mensagem}"/>
</pre>

Se alguem tiver alguma idéia de como resolver esse problema de alguma outra forma, que não de problema nos browsers, eu agradeço.

Abraços.

6 Respostas

Hebert_Coelho

Se seu texto já está formatado já está com a quebra no db, basta colocar o escape como true dentro do inputText.

Não consegui entender muito bem o problema.

shadowzaum

Desculpa, eu errei na hora de colocar ali. É no outputText que está o problema, não no input.

E sim, ele recupera do banco com as quebras de linha já, só que na hora que joga pro outputText, ele da problema e não quebra as linhas. Como a gente trabalha com muito log SIP dentro desses textos que estão salvos é essencial que tenhamos quebra de linha, para o log ficar legivel.

E o escape por default vem como true já… não é?

Hebert_Coelho

shadowzaum:
Desculpa, eu errei na hora de colocar ali. É no outputText que está o problema, não no input.

E sim, ele recupera do banco com as quebras de linha já, só que na hora que joga pro outputText, ele da problema e não quebra as linhas. Como a gente trabalha com muito log SIP dentro desses textos que estão salvos é essencial que tenhamos quebra de linha, para o log ficar legivel.

E o escape por default vem como true já… não é?

Exato. Joga para false! :oops: :oops:

shadowzaum

Bom, vou reecrever o problema, porque realmente com o titulo falando de input fico meio complicado =P

É o seguinte, eu tenho uma tela onde o usuario coloca mensgens, dai dentro de um dataTable eu recupero todas as mensagens e monto algo parecido com aqueles Shoutbox.

<rich:dataTable id="messagesPanel"
			value="#{chamadoController.mensagens}"
			var="item"
			style="width:95%;"
			rowClasses="rowMessageNoColor,rowMessageColor">

	<rich:column style="width: 150px;">
		<h:panelGrid columns="2" width="100%">
			<rich:column>
				<h:outputText value="#{item.usuario.nome}" styleClass="#{item.usuario.tipo}"/>
				<br/>
				<h:outputText value="#{item.dataEnvio}" styleClass="sample-text">
					<f:convertDateTime pattern="dd/MM/yyyy HH:mm:ss" type="both" timeZone="America/Sao_Paulo" />
				</h:outputText>
			</rich:column>
								
			<rich:column rendered="#{item.notificado}">
				<h:graphicImage value="/images/email.png"/>
			</rich:column>
		</h:panelGrid>
	</rich:column>

	<rich:column >
		<pre width="100%" style="font-family: 'arial', cursive;" >
			<h:outputText value="#{item.mensagem}"/>
		</pre>
	</rich:column>	
</rich:dataTable>

Esse código esta funcionando perfeitamente no Firefox, quebrando linha quando chega ao limite da pagina e tals. Porem no Google Chrome ele não respeita os tamanhos e cria barra de rolagem inferior e diminui o tamanho de todos os outros componentes.

Não sei se ficou mais claro o problema agora.

Dai gostaria de saber se tem como fazer essa “quebra de linha” de outra forma, sem ser com essa tag

 (que foi o unico jeito que achei, sem ser com javascript ou manipulando a string no java e adicionando os 
)
G

Coloca o comando abaixo no seu outputText:

style="word-wrap: break-word;"

[]'s

danvsantos

Pessoal,

Se vocês fizerem assim

<!— <br></br> —>
funciona. O JSF apenas quer que vc abre e feche.

Criado 19 de outubro de 2012
Ultima resposta 23 de out. de 2013
Respostas 6
Participantes 4