我正在尝试让用户在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");
}
...
}
如果需要,以下是用户的getter和setter:
public String getUser() {
return this.user;
}
public void setUser(String user) {
this.user = user;
}
我的问题是在打印“所选用户为”时,并没有写出user.toString(),而是写出了userList.toString()!就好像selectOneMenu没有正确设置一样,但我已经做了很多搜索。
有人可以帮忙吗?谢谢,AN
ArrayList
,因为它在按索引检索时更快。 - BalusC