gpt4 book ai didi

java - SelectOneMenu 仅在刷新后才更改其值

转载 作者:行者123 更新时间:2023-12-01 15:55:02 26 4
gpt4 key购买 nike

我在 JSF 页面上使用 SelectOneMenu 组件和 SelectBooleanCheckbox 组件。

如果选择了组合框,我的 SelectOneMenu 应被阻止并设置为第一个元素(重置)。

现在我已经实现了组合框的值更改监听器,并且 SelectOneMenu 的阻止效果非常好。

但是,当我重置 ComboBox 时,SelectOneMenu 将设置为旧(以前的)元素。

我认为 JSF 使用了类似缓存的东西。

如何重置 SelectOneMenu 控件?

我已将 value 属性链接到 bean 属性。我在值更改监听器中为此属性设置了一个值。

谢谢!

最佳答案

我假设您在复选框上使用 immediate="true" 并且您正在调用 FacesContext#renderResponse()在您的值更改监听器方法中(否则您会因验证而发疯)。

在这种情况下,您还需要将下拉组件本身的值设置为 null

UIInput dropdown = (UIInput) facesContext.getViewRoot().findComponent("formid:dropdownid");
dropdown.setValue(null);

UIViewroot#findComponent() 的替代方案是将其绑定(bind)为 bean 属性。

<h:selectOneMenu binding="#{bean.dropdown}">

关于java - SelectOneMenu 仅在刷新后才更改其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com