Estou desenvolvimendo um sistema em que pego um texto a partir de um campo CLOB e retorno o resultado dentro de uma página JSF. Contudo, o caracter de quebra de linha não está sendo preservado, de maneira que um texto com vários parágrafos fica como se fosse uma linha só. Na saída padrão System.out.println, a quebra de linha do texto é preservada, mas no h:outputText do JSF não é. Já tentei substituir os caracteres \n por tags , mas não funcionou. Alguém sabe resolver isso?
solucionei temporariamente o problema usando a tag h:inputTextArea com o atributo readonly, mas, caso exista, gostaria de fazer de outra forma.
D
davimcabral
Olá pessoal,
Encontrei a solução definitiva para o problema. Tenho que substituir na string todos os caracteres de retorno \n pela tag . Ademais, preciso setar para false a propriedade escape da tag outputText.
C
cabradapeste
up
L
liviaguedes
Olá davimcabral,
Cara vou te fala q tava com o msm problema… so q eu tentava colocar ou \n mas nao funcionava de jeito nenhum…
Agora deu certo… vlw
Lembrando que pra mim so funcionaou assim:
<br/>
flw
T
tjca1
eis uma solucao… ex:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:p="http://primefaces.org/ui"><h:head></h:head><h:body><p:growlid="growl"sticky="true"showDetail="true"/><p:layoutstyle="min-width:900px;min-height:900px;"id="layout"><p:layoutUnitposition="north"resizable="true"size="15"minSize="40"maxSize="200"></p:layoutUnit><p:layoutUnitposition="center"visible="true"><p:panelheader="Questões SCJP"id="panel"style="width:75%;left: 5%"><h:panelGridborder="0"style="text-align:left; width:100%"><h:form><p:tabView><p:tabtitle="1"><h:outputTextvalue="Given:"/><br/><h:outputTextvalue="11. public interface Status {"/><br/><h:outputTextvalue="12. /* insert code here */ int MY_VALUE = 10;"/><br/><h:outputTextvalue="13. }"/><br/><h:outputTextvalue="Which three are valid on line 12? (Choose three.)"/><br/><h:outputTextvalue="A. final"/><br/><h:outputTextvalue="B. static"/><br/><h:outputTextvalue="C. native"/><br/><h:outputTextvalue="D. public"/><br/><h:outputTextvalue="E. private"/><br/><h:outputTextvalue="F. abstract"/><br/><h:outputTextvalue="G. protected"/><br/></p:tab></p:tabView><h:panelGridcolumns="2"border="0"style="text-align:left;"cellpadding="5"><p:selectBooleanCheckboxvalue="A"><!-- <p:ajax update="msg" listener="B"/> --></p:selectBooleanCheckbox><h:outputTextvalue="A"/><p:selectBooleanCheckboxvalue="B"><!-- <p:ajax update="msg" listener="D"/> --></p:selectBooleanCheckbox><h:outputTextvalue="B"/><p:selectBooleanCheckboxvalue="C"><!-- <p:ajax update="msg" listener="E"/> --></p:selectBooleanCheckbox><h:outputTextvalue="C"/><p:selectBooleanCheckboxvalue="E"><!-- <p:ajax update="msg" listener="E"/> --></p:selectBooleanCheckbox><h:outputTextvalue="E"/><p:selectBooleanCheckboxvalue="F"><!-- <p:ajax update="msg" listener="E"/> --></p:selectBooleanCheckbox><h:outputTextvalue="F"/></h:panelGrid></h:form><p:buttononclick=""value="Confirmar"/></h:panelGrid></p:panel></p:layoutUnit></p:layout></h:body></html>
L
livaper
em <h:outputText …> é só colocar a propriedade escape=“false” ,
parece que por default essa propriedade é true que diz que a tag html é interpretada pelo browser como texto…
A
andrecajuru
Pra min funcionou apenas com a adição do display:block