Я пытаюсь разрешить пользователь выбирает элемент коллекции из раскрывающегося списка в 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 неправильно настроен, но я много искал об этом. Кто-нибудь может помочь? Спасибо, АН