如何用outputText显示换行符?

发布于 2024-09-12 00:26:47 字数 317 浏览 7 评论 0原文

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

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

,但它产生了异常

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

I need to render a line break using outputText so that I can utilize the rendered attributed. I tried

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

but it generated exception

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

唔猫 2024-09-19 00:26:47

自 Facelets 以来,这确实是无效的,因为它在 XML 中在语法上无效。您需要手动转义 XML 特殊字符,例如 <> 等。

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

不过,您可以仅在模板文本中发出
,而不需要

<br/>

要有条件地渲染它,请将其包装在 中。

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

也是有效的,因为它不会向 HTML 发送任何内容。

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

That's indeed not valid since Facelets because it's syntactically invalid in XML. You'd need to manually escape the XML special characters like <, > and so on.

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

You can however just emit the <br/> in template text without the need for a <h:outputText>.

<br/>

To render it conditionally, wrap it in for example a <ui:fragment>.

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

A <h:panelGroup> is also valid as it doesn't emit anything to the HTML anyway.

<h:panelGroup rendered="#{bean.rendered}"><br /></h:panelGroup>
半夏半凉 2024-09-19 00:26:47

JSF PAGE

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

escape 应为 false 并编写 bean Getter 方法如下

 public String getCrg() {
         return crg.replace("<br/>", "<br />");
        //return crg;
    }

JSF PAGE

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

escape should be false and write the bean Getter method as follows

 public String getCrg() {
         return crg.replace("<br/>", "<br />");
        //return crg;
    }
水水月牙 2024-09-19 00:26:47

您可以尝试将
放入资源包中,然后从该资源包中获取值。

You can try putting the "<br />" inside a resource bundle and then get the value from that resource bundle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文