2010-07-26 11 views
38

rendered을 사용할 수 있도록 outputText을 사용하여 줄 바꿈을 렌더링해야합니다. 나는 outputText를 사용하여 줄 바꿈을 표시하는 방법은 무엇입니까?

<h:outputText value="<br/>" escape="false" /> 

을 시도했지만 그것은 당신이 자원 번들 내부의 "<br />" 퍼팅을 시도하고 그 자원 번들에서 값을 얻을 수있는 예외

The value of attribute "value" associated with an element type "null" must not contain the '<' character. 

답변

87

XML에서 구문 적으로 유효하지 않기 때문에 실제로 Facelets 이후 유효하지 않습니다. <, > 등과 같이 XML 특수 문자를 수동으로 이스케이프 처리해야합니다.

<h:outputText value="&lt;br/&gt;" escape="false" /> 

당신은 그러나 단지 <h:outputText>를 필요로하지 않고 템플릿 텍스트에서 <br/>을 방출 할 수있다.

<br/> 

조건부로 렌더링하려면 <ui:fragment>과 같이 입력하십시오.

<ui:fragment rendered="#{bean.rendered}"><br /></ui:fragment> 

<h:panelGroup>도 HTML에 아무 것도 방출하지 않으므로 유효합니다.

<h:panelGroup rendered="#{bean.rendered}"><br /></h:panelGroup> 
+0

을 다음과 같이 빈에게 Getter 방법을 작성해야 관리 빈? 나는'HtmlOutputText linebreak = new HtmlOutputText();를 시도했다. lineBreak.setValue ("< br/>"및 "
"); (분명히 같은 시간대는 아니지만) 둘 다 작동하지 않고 단순히 입력 된 텍스트를 출력하고 휴식이 아닙니다. – Austin

+1

@Austin : 분명히 ' setEscape (false)'. – BalusC

+0

새 책이 필요 없다고 확신하십니까? =) – Austin

0

를 생성합니다.

3

JSF 페이지는

<h:outputText value="#{car.crg}" escape="false" style="white-space: pre-wrap;word-wrap: break-word; " /> 

탈출false을하고 동적에서`HtmlOutputText`를 추가 할 때이 작업을 수행 할 방법

public String getCrg() { 
     return crg.replace("<br/>", "&lt;br /&gt;"); 
     //return crg; 
    } 
관련 문제