gpt4 book ai didi

jsf - 单击提交按钮时,新值未在 jsf 支持 bean 中更新

转载 作者:行者123 更新时间:2023-12-04 06:41:41 25 4
gpt4 key购买 nike

我正在创建一个用户管理器页面,该页面在同一页面中更新和添加用户。

View 的相关部分:

<h:outputText value="Existing User: "/>
<h:selectOneMenu value="#{userManagerBean.existingUser}" valueChangeListener="#{userManagerBean.updateDetails}" onchange="submit();">
<f:selectItems value="#{userManagerBean.existingUserList}"/>
</h:selectOneMenu>

<h:outputText value="User Name: "/>
<h:inputText binding="#{userManagerBean.userNameBinding}" value="#{userManagerBean.userName}"/>

<h:outputText value="Password: "/>
<h:inputSecret redisplay="true" binding="#{userManagerBean.passwordBinding}" value="#{userManagerBean.password}"/>

<h:outputText value="Accessibility: "/>
<h:selectManyCheckbox layout="pageDirection" value="#{userManagerBean.selectedPagesList}" binding="#{userManagerBean.checkBoxBinding}">
<f:selectItems value="#{userManagerBean.pagesList}"/>
</h:selectManyCheckbox>

<h:commandButton action="#{userManagerBean.submitUser}" image="../images/submit.gif"/>

我在下拉列表中使用值更改监听器。 bean 是请求范围的。值更改监听器代码如下:
public void updateDetails(ValueChangeEvent evt) {
helper = new Helper();
System.out.println(evt.getNewValue());
UserManagerDAO userManagerDAO = new UserManagerDAO();
List<String> userDetails = userManagerDAO.getUserDetails(evt.getNewValue().toString());
//setUserName(getExistingUser());

if (evt.getNewValue().toString().equalsIgnoreCase("select")) {
passwordBinding.resetValue();
userNameBinding.resetValue();
checkBoxBinding.resetValue();
//setUserName("finland");
} else {
passwordBinding.setValue(userDetails.get(0));
userNameBinding.setValue(evt.getNewValue());
checkBoxBinding.setValue(helper.splitStringAndAddToList(userDetails.get(1)));
}
}

当我单击提交按钮时,新的用户名和密码没有绑定(bind)到属性,而是返回 null。如果我删除 if-else阻止 valuechange 事件代码,一切正常。我怎么解决这个问题?

最佳答案

组件按照它们在 View 中出现的顺序进行处理。您调用 UIInput#setValue() 在尚未处理的组件上。之后它们的值将被实际提交的值覆盖。宁可使用 UIInput#setSubmittedValue() 反而。

关于jsf - 单击提交按钮时,新值未在 jsf 支持 bean 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4156449/

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