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 ui的替代方案:在JSF2.0中动态包含页面的include_Jsf 2_Myfaces - Fatal编程技术网

Jsf 2 ui的替代方案:在JSF2.0中动态包含页面的include

Jsf 2 ui的替代方案:在JSF2.0中动态包含页面的include,jsf-2,myfaces,Jsf 2,Myfaces,在开始之前:我正在Tomcat6上运行JSF2.0 MyFaces,并且我已经在这个项目中使用了一些primefaces 我有一个带有三个过滤下拉列表的页面,它们在我的支持bean中设置了一系列参数。然后使用这些参数在下拉列表下包含一个页面。我使用ui:include来包含这个页面,但我非常确定ui:include在每个生命周期中只执行一次。这意味着页面只显示一次,并且在下拉列表更改时不会更改 这是我观点的一个例子 <h:form> <!-- dropdowns to

在开始之前:我正在Tomcat6上运行JSF2.0 MyFaces,并且我已经在这个项目中使用了一些primefaces

我有一个带有三个过滤下拉列表的页面,它们在我的支持bean中设置了一系列参数。然后使用这些参数在下拉列表下包含一个页面。我使用ui:include来包含这个页面,但我非常确定ui:include在每个生命周期中只执行一次。这意味着页面只显示一次,并且在下拉列表更改时不会更改

这是我观点的一个例子

<h:form>
    <!-- dropdowns to build the route to the included page -->
    <h:selectOneMenu>
        <f:selectItems ... />
        <f:ajax 
           event="change" 
           render=":formInclude" 
           execute=":formInclude" 
           listener="#{control.handledd1Change}"/>
    </h:selectOneMenu>
    <h:selectOneMenu>
        <f:selectItems ... />
        <f:ajax 
           event="change" 
           render=":formInclude" 
           execute=":formInclude" 
           listener="#{control.handledd2Change}"/>
    </h:selectOneMenu>
    <h:selectOneMenu>
        <f:selectItems ... />
        <f:ajax 
           event="change" 
           render=":formInclude" 
           execute=":formInclude" 
           listener="#{control.handledd3Change}"/>
    </h:selectOneMenu>
</h:form>
<h:panelGrid id="formInclude">
    <ui:include src="#{control.formName}.xhtml"/>
</h:panelGrid>


所以,我想知道在JSF中动态包含页面的最正确方法是什么。我对ui的看法正确吗:包含只执行一次?还有什么可以用来动态包含页面的东西吗?

事实证明,我能够在每次下拉更改后执行ui:insert。我所要做的就是使用ajax执行并重新渲染它。这是我用来帮助找到我的路的页面:


事实证明,我能够在每次下拉更改后执行ui:insert。我所要做的就是使用ajax执行并重新渲染它。这是我用来帮助找到我的路的页面:


您能否提供@Dave示例,说明如何使用ui:insert根据下拉列表更改内容?Thx.您能否提供@Dave示例,说明如何使用ui:insert根据下拉更改更改内容?谢谢。