Jsf 2 如何使用<;h:表格>;在<;rich:tabPanel>;

Jsf 2 如何使用<;h:表格>;在<;rich:tabPanel>;,jsf-2,richfaces,tabpanel,Jsf 2,Richfaces,Tabpanel,我正在开发我的第一个JSF2+Richfaces应用程序,现在我遇到了这个问题 我有以下丰富的:tabPanel,其中动态添加和删除选项卡 <h:form> <rich:tabPanel id="tabsPanel" switchType="ajax" activeItem="#{tabsBean.activeTab}" > <c:forEach var="tab" ite

我正在开发我的第一个JSF2+Richfaces应用程序,现在我遇到了这个问题

我有以下丰富的:tabPanel,其中动态添加和删除选项卡

<h:form>
  <rich:tabPanel id="tabsPanel" switchType="ajax" activeItem="#{tabsBean.activeTab}" >
     <c:forEach var="tab" items="#{tabsBean.tabs}" styleClass="myRightPanel">
        <rich:tab  name="#{tab.name}" styleClass="myTab" >
            <h:form id="#{tab.name}" >
            <ui:include src="#{tab.pathDaIncludere}" />
        </h:form>
    </rich:tab>
   </c:forEach> 
  </rich:tabPanel>
</h:form>

但要运行,我必须在每个
周围添加一个
,否则选项卡中的操作将不起作用


在每个选项卡中插入
是否正确?

@Daniel可能会更糟;我宁愿使用a4j:region,而不是嵌套表单有自己的问题。我建议您从选项卡内部删除
h:form
,并将
c:forEach
更改为
a4j:repeat
。正如@Gamb所说,您与嵌套表单无关。仅使用一个包围整个
选项卡面板
,或为每个
选项卡
使用一个。另一方面,我认为您必须使用
c:forEach
,因为tabPanel必须在页面呈现之前知道他的标记。相关:@XtremeBiker您对
c:forEach
有一点看法。我收回我先前评论的那一部分。OP只需确保在重新渲染时使用正确的选项卡正确填充
tabsBean.tabs
集合(如果这是有意的话)。无法使用
ui:repeat
动态构建它。这在Primefaces这样的库中是一个优势,在Primefaces中,
tabView
组件具有内置迭代器,您可以在渲染之前构建模型<代码>。这只是避免在视图中引入更多逻辑。