Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 使用a4j:jsFunction呈现多个表单_Jsf 2_Ajax4jsf - Fatal编程技术网

Jsf 2 使用a4j:jsFunction呈现多个表单

Jsf 2 使用a4j:jsFunction呈现多个表单,jsf-2,ajax4jsf,Jsf 2,Ajax4jsf,我试图以其他形式使用呈现不同的。但是它不起作用。我实现的代码如下所示: <t:div style="display:table-row; "> <a4j:region> <t:div style="display:table-cell; border:1px solid #608AA9;"> <h:form id="accordForm"> <rich:accor

我试图以其他形式使用
呈现不同的
。但是它不起作用。我实现的代码如下所示:

<t:div style="display:table-row; ">
    <a4j:region>
        <t:div style="display:table-cell; border:1px solid #608AA9;">
            <h:form id="accordForm">
                <rich:accordion id="accordId" switchType="client" activeItem="#{projectCreation.activeTab}">
                    <c:forEach var="proj" items="#{projectCreation.projects}">
                        <rich:accordionItem name="#{proj.description}">
                        <f:facet name="header">#{proj.description}</f:facet>
                            <h:form id="moduleAccord" rendered="#{proj.childCount>0}">
                                <rich:accordion id="moduleAccordId" switchType="client" activeItem="#{projectCreation.activeModuleTab}" onitemchange="moduleAccordionChange();">
                                    <a4j:jsFunction name="moduleAccordionChange" execute="@all" render="@all" action="#{projectCreation.accordionItemChange}" />
                                    <c:forEach var="mdle" items="#{proj.modules}">
                                        <rich:accordionItem id="module#{mdle.id}" name="#{mdle.description}">
                                            <f:facet name="header">#{mdle.description}</f:facet>
                                            <h:form id="formodule#{mdle.id}" rendered="#{mdle.childCount>0}">
                                                <t:dataList id="subModuleList" var="subMdle" value="#{mdle.subModules}" layout="unorderedList">
                                                    <a4j:commandButton id="subModuleCmd" value="#{subMdle.description}" action="#{projectCreation.fetchSubModuleDetails}">
                                                        <f:param name="subModuleId" value="#{subMdle.id}" />
                                                    </a4j:commandButton>
                                                </t:dataList>
                                            </h:form>
                                        </rich:accordionItem>
                                    </c:forEach>
                                </rich:accordion>
                            </h:form>
                        </rich:accordionItem>
                    </c:forEach>
                </rich:accordion>
            </h:form>
        </t:div>
    </a4j:region>
    <h:form id="rightContent">
        <t:div id="rightContentDiv">
        <h:outputText id="selectedPage" value="#{projectCreation.creationModel.selectedPage}" />
            <t:div id="projectDiv" style="display:table-cell;" rendered="#{projectCreation.creationModel.selectedPage=='Project'}">
                <a4j:outputPanel ajaxRendered="true">
                    <ui:include src="/WEB-INF/facelets/project/editProject.xhtml"/>
                </a4j:outputPanel>
            </t:div>
            <t:div id="moduleDiv" style="display:table-cell;" rendered="#{projectCreation.creationModel.selectedPage=='Module'}">
                <a4j:outputPanel ajaxRendered="true">
                    <ui:include src="/WEB-INF/facelets/project/addModule.xhtml"/>
                </a4j:outputPanel>
            </t:div>
        </t:div>
    </h:form>
</t:div>

#{项目说明}
#{mdle.description}

我正在尝试更改嵌套手风琴模块选择的呈现页面。我已经在日志中检查过,它在controller中工作正常,但在facelet上没有按预期工作。当我使用
switchType=“server”
时,它可以正常工作,但是它会完全重新加载页面,我只想
呈现
右侧内容
表单
看看这个展示示例:

不要嵌套表单,HTML不支持


使用
switchType=“server”
可以重新加载整个页面。改用
switchType=“ajax”
并去掉嵌套表单,重新组织视图,否则您将花费一生的时间进行调试。@kolossus使用
switchType=“ajax”
模式重新加载页面需要很长时间。另外,我知道我不应该嵌套表单,因为它不受支持,但是它不以这种方式工作,并且在中以相同的方式实现。我使用了与您提到的相同的Richfaces Showcase来实现它。我知道嵌套表单不受支持,但它只能以这种方式工作。看看showcase,它有嵌套的