我是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>但是,非常奇怪的是,该选项卡根本没有呈现。要找到原因,如果我在组合定义文件中添加了一个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>将呈现outputText,但没有呈现选项卡。
或者,如果我直接将其中一个选项卡更改为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>第一个选项卡将不呈现,但第二个选项卡将呈现。
如果你能帮我什么忙,谢谢你。
发布于 2014-01-07 11:14:12
组合组件被呈现为自己的UINamingContainer。因此,在UITabPanel和UITab-component之间现在是一个UINamingContainer,UITab可能不知道如何处理它(顺便说一句,datatable也有同样的问题)。您可以做的是使用经典面片标签代替。
https://stackoverflow.com/questions/20967953
复制相似问题