【问题标题】:Composition is not rendered in Richfaces tabPanelRichfaces tabPanel 中不呈现合成
【发布时间】:2014-01-07 09:25:05
【问题描述】:

我是 JSF 和 Richfaces 的用户。我将简化有关我的问题的代码,以使事情变得更容易。 我有一个名为“mytab.xhtml”的组合,定义如下:

<cc:interface>
    <cc:attribute name="header" required="true"/>
</cc:interface>
<cc:implementation>
    <rich:tab id="my-tab" header="#{cc.attrs.header}" >
        <cc:insertChildren />
    </rich:tab>
</cc:implementation>

此组合用于另一个 xhtml 文件,如下所示:

<rich:tabPanel id="tp" switchType="ajax" headerPosition="top" >
     <ic:mytab id="tab1" header="header1">
          <h:outputText>content1</h:outputText>
     </ic:mytab>
     <ic:mytab id="tab2" header="header2">
          <h:outputText>content1</h:outputText>
     </ic:mytab>
</rich:tabPanel>

但是很奇怪的是tab根本没有渲染。 要找到原因,如果我在合成定义文件中添加一个 outputText,如下所示:

<cc:interface>
    <cc:attribute name="header" required="true"/>
</cc:interface>
<cc:implementation>
        <h:outputText>#{cc.attrs.header}</h:outputText>
    <rich:tab id="my-tab" header="#{cc.attrs.header}" >
        <cc:insertChildren />
    </rich:tab>
</cc:implementation>

将渲染输出文本,但不渲染选项卡。

或者,如果我直接将其中一个选项卡更改为 Richfaces 选项卡:

<rich:tabPanel id="tp" switchType="ajax" headerPosition="top" >
     <ic:mytab id="tab1" header="header1">
          <h:outputText>content1</h:outputText>
     </ic:mytab>
     <rich:tab id="tab2" header="header2">
          <h:outputText>content1</h:outputText>
     </rich:tab>
</rich:tabPanel>

第一个选项卡不会被渲染,但第二个选项卡会被渲染。

如果你能给我任何帮助,谢谢。

【问题讨论】:

  • 当你说没有渲染你的意思是没有生成HTML?
  • 谢谢@Andrei,是的,没有生成与rich:tab相关的HTML代码。
  • 你从哪里得知id="#{cc.attrs.id}" 的废话?这真的没有任何意义,并且可能只会引起麻烦和混乱。只需给它一个固定 ID,该 ID 在 &lt;cc:implementation&gt; 本身内是唯一的!
  • 嗨@BalusC,感谢您的回复。我刚才试过你的方法,把id="{cc.attrs.id}"换成一个固定的唯一ID,但是很抱歉问题没有解决。请问我是不是误解了你的回答?无论如何,它一直发生在我身上 - 如果我将 rich:tab 包装在一个合成中,并将合成插入到一个 rich:tabPanel 中,该选项卡将不会呈现为选项卡面板的选项卡。我认为下面@L-Ray 的答案是对的。
  • 这不是答案,而是评论。请在评论中回答问题。

标签: java jsf richfaces


【解决方案1】:

复合组件呈现为自己的UINamingContainer。所以在UITabPanelUITab-组件之间现在是一个UINamingContainer,UITab 可能不知道如何处理它(顺便说一下,数据表也有同样的问题)。你可以做的是改用classic facelet tag

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 2012-02-12
    • 2011-12-14
    • 2011-06-15
    • 2011-05-23
    相关资源
    最近更新 更多