Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 清除级联下拉列表的值_Jsf_Primefaces - Fatal编程技术网

Jsf 清除级联下拉列表的值

Jsf 清除级联下拉列表的值,jsf,primefaces,Jsf,Primefaces,我正在开发一个JSF2.0应用程序,其中有一个包含4个级联下拉列表的xhtml页面。根据一些查询从数据库填充下拉列表。那很有效!现在,我需要在完成选择后清除/重置这些下拉列表。当我第二次访问此页面时,下拉列表仍然填充。如果从第一个下拉列表中选择,则第二个下拉列表将刷新,但第三个和第四个下拉列表不会刷新。这些文件中的数据仍然完好无损。这是我正在使用的代码。我只是在这里显示3个下拉列表,第四个类似。任何帮助/建议都将不胜感激 <label class="control-label">Dr

我正在开发一个JSF2.0应用程序,其中有一个包含4个级联下拉列表的xhtml页面。根据一些查询从数据库填充下拉列表。那很有效!现在,我需要在完成选择后清除/重置这些下拉列表。当我第二次访问此页面时,下拉列表仍然填充。如果从第一个下拉列表中选择,则第二个下拉列表将刷新,但第三个和第四个下拉列表不会刷新。这些文件中的数据仍然完好无损。这是我正在使用的代码。我只是在这里显示3个下拉列表,第四个类似。任何帮助/建议都将不胜感激

<label class="control-label">Dropdown1</label>
<div>
<h:selectOneMenu id="drop1" value="#{myBean.aId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.aList}" var ="a"
                    itemLabel="#{a.name}"
                    itemValue="#{a.id}" />

    <p:ajax update="drop2" listener="#{myBean.populateDrop2}" />  

</h:selectOneMenu>
</div>         

<label class="control-label">Dropdown2</label>
<div>
<h:selectOneMenu id="drop2" value="#{myBean.bId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.bList}" var ="b"
                    itemLabel="#{b.name}"
                    itemValue="#{b.id}" />

    <p:ajax update="drop3" listener="#{myBean.populateDrop3}" />  

</h:selectOneMenu>
</div>   


<label class="control-label">Dropdown3</label>
<div>
<h:selectOneMenu id="drop3" value="#{myBean.cId}">
    <f:selectItem itemLabel="Select" itemValue="" />
    <f:selectItems value="#{myBean.cList}" var ="c"
                    itemLabel="#{c.name}"
                    itemValue="#{c.id}" />
</h:selectOneMenu>
</div>   
下拉列表1
下拉列表2
下拉列表3

如果您的bean在会话范围内,或者您在同一视图上通过回发进行导航,则会发生这种情况。只需将bean放入视图范围并通过GET请求进行导航。只要您通过回发与同一视图交互,视图范围bean就会存在,GET请求将有效地创建一个新的视图范围bean

另见:

添加ajax请求后需要更新的所有组件。在这种情况下,您应该具有
,并确保从两个下拉列表中清除所选元素。如果您有
drop4
drop5
等,您也应该将它们全部清理干净。感谢Luiggi的建议