如何用outputText显示换行符?

Tha*_*ham 43 jsf line-breaks jsf-2

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

<h:outputText value="<br/>" escape="false" />
Run Code Online (Sandbox Code Playgroud)

但它产生了异常

The value of attribute "value" associated with an element type "null" must not contain the '<' character. 
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 92

自Facelets以来,这确实无效,因为它在XML中在语法上是无效的.您需要手动转义XML特殊字符<,>依此类推.

<h:outputText value="&lt;br/&gt;" escape="false" />
Run Code Online (Sandbox Code Playgroud)

但是,您只需发出<br/>模板文本而无需a <h:outputText>.

<br/>
Run Code Online (Sandbox Code Playgroud)

要有条件地渲染它,请将其包裹在例如a中<ui:fragment>.

<ui:fragment rendered="#{bean.rendered}"><br /></ui:fragment>
Run Code Online (Sandbox Code Playgroud)

A <h:panelGroup>也是有效的,因为它不会向HTML发送任何内容.

<h:panelGroup rendered="#{bean.rendered}"><br /></h:panelGroup>
Run Code Online (Sandbox Code Playgroud)


小智 5

JSF页面

<h:outputText value="#{car.crg}" escape="false" style="white-space: pre-wrap;word-wrap: break-word; " />
Run Code Online (Sandbox Code Playgroud)

转义应该是false并编写Getter如下的bean 方法

 public String getCrg() {
         return crg.replace("<br/>", "&lt;br /&gt;");
        //return crg;
    }
Run Code Online (Sandbox Code Playgroud)