Jsf 如何使用outputText显示换行符?

Jsf 如何使用outputText显示换行符?,jsf,jsf-2,line-breaks,Jsf,Jsf 2,Line Breaks,我需要使用outputText渲染换行符,以便我可以使用渲染的属性。我试过了 <h:outputText value="<br/>" escape="false" /> 但它产生了一个例外 The value of attribute "value" associated with an element type "null" must not contain the '<' character. 与元素类型“null”关联的属性“value”的值不能包含

我需要使用
outputText
渲染换行符,以便我可以使用
渲染的
属性。我试过了

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

但它产生了一个例外

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

与元素类型“null”关联的属性“value”的值不能包含“您可以尝试将

放在资源束中,然后从该资源束中获取值。

这确实是无效的,因为Facelets在XML中语法无效。您需要手动转义XML特殊字符,如
等等

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

但是,您可以只在模板文本中发出

,而不需要

<br/>

要有条件地呈现它,请将其包装在例如


也是有效的,因为它不会向HTML发出任何信息

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

JSF页面

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

在托管bean中动态添加
htmlouttext
时,您将如何做到这一点?我尝试了
htmlouttext linebreak=newhtmloutput();lineBreak.setValue(“br/”和“
”)(显然不是在同一时间)但都不起作用,他们只是输出输入的文本,而不是break@Austin:显然你忘了调用
setEscape(false)
。确定你不需要任何新书吗?=)谢谢你,巴卢斯克!如果带换行符的文本来自EL表达式,则需要使用未转义的换行符元素。
<h:outputText value="#{car.crg}" escape="false" style="white-space: pre-wrap;word-wrap: break-word; " />
 public String getCrg() {
         return crg.replace("<br/>", "&lt;br /&gt;");
        //return crg;
    }