首页 > 解决方案 > JSF 模板和复合组件:在当前表单外添加表单

问题描述

我正在使用一个复合组件,该组件本身使用一个声明 Primefaces 对话框和关联表单的其他组件。

问题是,在表单中生成表单。

我正在寻找一种方法来推迟我的嵌套组件的插入。避免形式内有形式。

<h:form id="documentsForm">
    <!-- ***************** -->
    <!-- ***   STUFF   *** -->
    <!-- ***************** -->

    <!-- ***************** -->
    <!-- *** DOCUMENTS *** -->
    <!-- ***************** -->
    <si:documentsTable documentsCtrl="${bean.documentsTableController}" />
</h:form>

我的文档Table.xhtml

<ui:composition ...>
<composite:implementation>
    <!-- ******************* -->
    <!-- ***    STUFF    *** -->
    <!-- ******************* -->
    <!-- ******************* -->
    <!-- ***   Dialogs   *** -->
    <!-- ******************* -->
    <si:myDialog1 updateOnSave="documentsForm:idInStuff" onSuccess="rcUpdate();" />
    <si:myDialog2 updateOnSave="documentsForm:idInStuff" onSuccess="rcUpdate();" />

</composite:implementation>
</ui:composition>

我的 myDialog1.xhtml / myDialog2.xhtml

<ui:composition ...>
<composite:implementation>
    <pf:dialog ...>
        <!-- ***   X is equals to 1 or 2 depending of myDialog1/myDialog2 *** -->
        <h:form id="myDialogXForm" styleClass="ui-g">
            <!-- ***   THIS SHOULD NOT BE A NEASTED  FORM *** -->
        </h:form>
    </pf:dialog>
</composite:implementation>
</ui:composition>

我理想的解决方案是有一种方法可以将 Dialog1 和 Dialog2 插入到我的页脚中。

我可以直接在页脚中添加 myDialog1 / myDialog2,但它们会为所有页面生成,我不希望这样。也许等待在页脚部分添加条件元素会成功?

标签: javaformsjsf-2custom-componentcomposite-component

解决方案


推荐阅读