如何使用switchType =“server”在<rich:tabpanel>中使用多个表单?</rich:tabpanel>

时间:2015-04-16 14:04:55

标签: jsf-2 richfaces

我们从RichFaces 3切换到4并且在<rich:tabPanel>有一些概念性问题...使用RichFaces 3你可以做类似的事情:

<rich:tabPanel switchType="server">
    <rich:tab header="A">
        <h:form>
            <h:commandButton value="A1" />
        </h:form>
        <h:form>
            <h:commandButton value="A2" />
        </h:form>
    </rich:tab>
    <rich:tab header="B">
        <h:form>
            <h:commandButton value="B" />
        </h:form>
    </rich:tab>
    <rich:tab header="C">
        <h:form>
            <h:commandButton value="C" />
        </h:form>
    </rich:tab>
</rich:tabPanel>

不再适用于JSF 2和RichFaces 4 - <rich:tabPanel>需要<h:form> switchType="server""ajax" ...只有客户才能在没有表单的情况下工作。所以我们现在必须像这样构建它:

<h:form>
    <rich:tabPanel switchType="server">
        <rich:tab header="A">
            <h:commandButton value="A1" />
            <h:commandButton value="A2" />
        </rich:tab>
        <rich:tab header="B">
            <h:commandButton value="B" />
        </rich:tab>
        <rich:tab header="C">
            <h:commandButton value="C" />
        </rich:tab>
    </rich:tabPanel>
</form>

有效......但我之前无法将A1A2分开,这些形式之前已经是单独的形式。

如何在不使用switchType="client"的情况下解决该问题?

2 个答案:

答案 0 :(得分:1)

您可以使用@execute限制<a4j:commandButton execute="@region">的范围。可能最简单的方法是将数据包装在<a4j:region>中并在按钮上设置execute="@region"

答案 1 :(得分:1)

富表格中的多表单支持:tabPanel票证最近被拒绝,建议使用a4j:region

  

这不会被实现,&lt; a4j:region&gt;可以用来限制   选项卡内的执行范围。

https://issues.jboss.org/browse/RF-11306