【问题标题】:How to add break line in <h:outputText /> value? [duplicate]如何在 <h:outputText /> 值中添加换行符?
【发布时间】:2014-04-01 01:40:41
【问题描述】:

我正在尝试在&lt;h:outputText /&gt; 值中换行。

我只是简单地将&lt;br&gt; 作为 HTML 理论的值。但它不起作用并出现页面错误。

当我删除&lt;br/&gt; 时。它再次正常工作。

我的代码是:

<h:outputText value="[#{order.product.code}] #{order.product.name} <br/> #{order.qty}"/>

我尝试了另一种方法。

<h:outputText value="[#{order.product.code}] #{order.product.name} &#10 #{order.qty}"/>

完全没有变化。

【问题讨论】:

  • 我发现只需在标签中设置属性 escape="false" 并保留
    它对我有用。

标签: html jsf primefaces


【解决方案1】:

&amp;lt; 用于&lt;&amp;gt; 用于&gt;,然后制作您的html 标记。


点赞:

&lt;br /&gt; - For <br />

然后你必须告诉浏览器转义html标签,将escape= "true" attirbute放在&lt;h:outputText /&gt;中。


根据你的要求试试这个,

示例代码:

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

输出:

value-one 
value-two 
value-three

【讨论】:

    【解决方案2】:

    非常感谢大家..! 尤其是@Wanna 咖啡和@hurleytom。 您的代码确实有效。

    <h:outputText value="[#{order.product.code}]&lt;br /&gt;#{order.product.name}&lt;br /&gt;#{order.qty}" escape="false" />
    

    【讨论】:

    • :) ,当我尝试你的答案时,我没有看到 escape="false"。那是我的错。
    【解决方案3】:

    您究竟为什么需要&lt;h:outputText&gt;?您似乎没有利用模板文本中纯 EL 之上的任何附加功能。

    把它去掉,写成这样:

    [#{order.product.code}] #{order.product.name} <br/> #{order.qty}
    

    请注意,这在旧版 JSP 中是不可能的,但鉴于您使用的是 PrimeFaces,它没有与 JSP 兼容的标记库(JSP 在 4 年前已被弃用),那么您肯定应该使用 Facelets。

    【讨论】:

    • 非常感谢.. @BalusC
    【解决方案4】:

    您可以使用多个h:outputTex 标签,在它们之间使用&lt; br /&gt; 标签。请尝试以下操作:

    <h:outputText value="[#{order.product.code}]"/>
    <br/>
    <h:outputText value="#{order.product.name}"/>
    <br/> 
    <h:outputText value="#{order.qty}"/>
    

    更新:

    或者使用escape="false":

    <h:outputText value="[#{order.product.code}]&lt;br /&gt;#{order.product.name}&lt;br /&gt;#{order.qty}" escape="false" />
    

    【讨论】:

    • 如果用户想在&lt;p:panelGrid /&gt; 内部使用它可能会导致一些对齐错误。有没有帮助??
    • &lt;h:panelGroup&gt;包裹起来。
    • 这对开发者来说很难写3行代码而不是单行代码??
    • 关于 PrimeFaces <panelgrid></panelgrid> 的优点是每个 <outputtext></outputtext> 都会移动到一个新单元格。根据@Vasil-Lukach 的回答查看我的更新答案。这应该可以在一行中完成您想要的。
    • 对不起,我不能使用多个 outputText 因为它在里面
    【解决方案5】:

    h:outputText 中添加属性escape="false"。如果您的value 包含&lt;br /&gt;,那么您将在文本中出现换行符。

    【讨论】:

      猜你喜欢
      • 2014-10-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2016-06-01
      • 2012-05-13
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多