【问题标题】:Do not collapse whitespace when displaying the value of the backing bean in the JSF在 JSF 中显示支持 bean 的值时不要折叠空格
【发布时间】:2011-06-08 06:00:54
【问题描述】:

我发现JSF页面上显示的backing bean值会自动折叠空白。如何使显示的值不折叠空白??

例如,我有一个 MBean,它有一个字符串变量 test 并赋值

"test test"
,当我使用 <h1>${MBean.test}</h1> 渲染它时,它只会给出 test test ,中间的所有空白都只折叠为空白。

如果我使用 <rich:dataTable> 以表格格式显示 MBean 中的 ArrayList 也会发生这种情况,所有空白也会被折叠。

更新:我仍然认为它是特定于 JSF 的,因为当我使用 <h:inputText value="#{MBean.test}"/> ,渲染的输入文本框会折叠所有的空格。在这种情况下如何保留所有的空格??

【问题讨论】:

    标签: html jsp jsf richfaces whitespace


    【解决方案1】:

    Sun 的 JavaServer Faces 实现 (1.2_07-b03-FCS) 在 Webshpere Application Server 7.0.0.21 上针对 CSS 空白存在同样的问题:pre

    【讨论】:

      【解决方案2】:

      这不是 JSF 特有的。这是特定于 HTML 的

      您可以通过任一将其放入 HTML <pre> 元素中来修复它:

      <h1><pre>#{bean.text}</pre></h1>
      

      或者通过在 HTML 元素上应用 CSS white-space: pre

      h1 { 
          white-space: pre;
      }
      

      (如您所见,它也出现在您在 Stackoverflow 上的问题中,因为它也不会保留 white-space: pre 的空格)

      【讨论】:

      • 是的,&lt;h1&gt;&lt;pre&gt;#{bean.text}&lt;/pre&gt;&lt;/h1&gt; 有效!本来我也是用csswhite-space: pre 的方法&lt;h1 style="white-space:pre;" &gt; #{bean.text}&lt;/h1&gt; ,但是发现渲染出来的HTML源码已经把所有的空格都折叠了。看来JSF不能正确处理white-space: pre??
      • 你确定它在 HTML 源代码中被直接折叠了吗?这不应该发生。
      • 是的,&lt;h1 style="white-space:pre;" &gt; #{bean.text}&lt;/h1&gt; 将直接折叠 HTML 源中的字符串,但 &lt;h1&gt;&lt;pre&gt;#{bean.text}&lt;/pre&gt;&lt;/h1&gt; 不会。
      • 我还是觉得它是 JSF 特有的,因为当我使用 时,渲染的输入文本框会全部折叠成白色-空格。
      • Mojarra 上根本不会出现。不在模板文本中,不在h:outputText 中,不在h:inputText 中。无处。它可能是 RichFaces 特定的(不能说这个,因为我不使用它)或者你在请求-响应链中有一些 Filter 吃掉所有的空白以节省带宽并将 &lt;pre&gt; 标签放入帐户。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2012-09-06
      • 1970-01-01
      • 1970-01-01
      • 2010-10-15
      相关资源
      最近更新 更多