在ice中设置列表项:SelectOneMenu

发布于 2024-09-27 14:25:41 字数 153 浏览 7 评论 0 原文

我希望将列表中的项目设置到 Icefaces 中的选择菜单中。 但是当我做同样的事情时,我收到以下错误: java.lang.ClassCastException: 无法转换为 javax.faces.model.SelectItem

是一个实体类。

请帮忙。

I wish to set items from a list to the selectonemenu in icefaces.
But when I do the same I get the following error:
java.lang.ClassCastException: cannot be cast to javax.faces.model.SelectItem

The is an entity class.

Please Help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

俏︾媚 2024-10-04 14:25:41

创建和填充 selectOneMenu 项的正常方法如下:

private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter

public Bean() {
    selectItems = new ArrayList<SelectItem>();
    for (Entity entity : getYourEntities()) {
        selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
    }
}

在视图中使用以下内容(您可以轻松地将 替换为 <; ice:):

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

除了 String 值,您还可以使用任何 NumberIntegerLong code> 等),因为 JSF 有内置转换器。但如果您想使用整个对象作为项目值,那么您需要创建一个Converter本文对此进行了详细描述。

The normal way of creating and populating the selectOneMenu items would be the following:

private String selectedItem; // +getter +setter
private List<SelectItem> selectItems; // +getter

public Bean() {
    selectItems = new ArrayList<SelectItem>();
    for (Entity entity : getYourEntities()) {
        selectItems.add(new SelectItem(entity.getValue(), entity.getLabel()));
    }
}

With the following in the view (you can easily subsitite <h: with <ice:):

<h:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.selectItems}" />
</h:selectOneMenu>

Instead of a String value, you can also use any Number (Integer, Long, etc) since JSF has builtin converters for this. But if you want to use whole objects as item value, then you need to create a Converter. This is described in detail in this article.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文