gpt4 book ai didi

JSF。 SelectOneMenu 和 SelectItems

转载 作者:行者123 更新时间:2023-12-04 16:02:17 28 4
gpt4 key购买 nike

我试图让用户从 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 它没有正确设置,但我已经搜索了很多关于它。
任何人都可以帮忙吗?谢谢,
一个

最佳答案

<f:selectItems>不支持 Collection .您需要一个 ListMapObject[] .
也可以看看:

  • Our selectOneMenu wiki page

  • 更新 :事实证明您使用的是 JSP 而不是 Facelets。新的 JSF 2.x 标记和属性是 不是 可用于 JSP。这包括 <f:selectItems var> .只有旧的 JSF 1.x 标记和属性可用于 JSP。从 JSF 2.0 开始,JSP 已被弃用,而由 Facelets 取而代之。您应该改用 Facelets。
    也可以看看:
  • Migrating from JSF 1.2 to JSF 2.0
  • 关于JSF。 SelectOneMenu 和 SelectItems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969122/

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