我试图让用户从 JSF 的下拉列表中选择一个集合项目。这是我正在使用的代码:
<f:view>
<h:form id="insert">
<h:selectOneMenu value="#{MyBean.user}">
<f:selectItems value="#{MyBean.userList}" var="currentUser" itemValue="#{currentUser.username}" itemLabel="#{currentUser.username}"/>
</h:selectOneMenu>
<h:commandButton value="Insert" action="#{AuctionBean.insertItem}"/><br>
</h:form>
</f:view>
这是 MyBean 的代码:
@ManagedBean
public class MyBean{
private String user;
private Collection<User> userList;
@PostConstruct
public void init() {
this.userList = UserRepository.getInstance().findAllUsers();
}
...
public String insertItem() {
System.out.println("The selected user is " + this.user);
...
return ("successfulInsertion");
}
...
}
如果需要我的用户获取器和设置器:
public String getUser() {
return this.user;
}
public void setUser(String user) {
this.user = user;
}
我的问题是,当它打印“选定的用户是”时,没有写 user.toString(),而是 userList.toString()!就像 selectOneMenu 没有正确设置一样,但我已经搜索了很多关于它的内容。任何人都可以帮忙吗?谢谢, 安