我在JSF页面上使用SelectOneMenu
组件和SelectBooleanCheckbox
组件。
如果选择了组合框,我的SelectOneMenu应该被阻止并设置为第一个元素(重置)。
现在我已经实现了组合框的值更改监听器,并且SelectOneMenu
的阻塞效果非常好。
但是,当我重置ComboBox时,SelectOneMenu
被设置为旧(前一个)元素。
我认为有一些类似JSF使用的缓存。
如何重置SelectOneMenu
控件?
我已将value
- 属性链接到bean属性。我在值更改侦听器中为此属性设置了一个值。
谢谢!
答案 0 :(得分:1)
我假设您在复选框上使用immediate="true"
并且您在值更改侦听器方法中调用FacesContext#renderResponse()
(否则您会对验证感到厌烦)。
在这种情况下,您还需要将下拉组件本身的值设置为null
。
UIInput dropdown = (UIInput) facesContext.getViewRoot().findComponent("formid:dropdownid");
dropdown.setValue(null);
UIViewroot#findComponent()
的替代方法是将其绑定为bean属性。
<h:selectOneMenu binding="#{bean.dropdown}">