清除级联下拉列表的值



我正在开发一个JSF 2.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>   

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

参见:

  • 如何选择合适的bean scope?
  • 什么时候我应该使用h:outputLink而不是h:commandLink?

相关内容

  • 没有找到相关文章

最新更新