java - JSF - UISelectItems 问题

标签 java jsf uicomponents

我从编译器收到奇怪的错误:

Expected a child component type of UISelectItem/UISelectItems for component type javax.faces.SelectOne(siachoice).  Found javax.faces.component.UISelectItems.

那么,如果他期待 UISelectItems,却找到了 UISelectItems,那么错误在哪里呢?

我的 JSP 实现:

<h:selectOneMenu id="siachoice" value="#{dbSelectBean.currentOption}">
                                <f:selectItems value="#{dbSelectBean.dbs}" />
                            </h:selectOneMenu>

方法,我将 UISelectItem 设置为 UISelectItems:

private UISelectItems populateDatabases(String databaseString) {
    UISelectItems selects = new UISelectItems();
    List<UISelectItem> result = new ArrayList<UISelectItem>();
    StringTokenizer tokeniz = new StringTokenizer(databaseString, GlobalConstants.DELIMITER);
    while(tokeniz.hasMoreTokens()){
        String tempDB = tokeniz.nextToken();
        UISelectItem item = new UISelectItem();
        item.setItemValue(tempDB);
        item.setItemLabel(tempDB);
        result.add(item);
    }
    selects.setValue(result);

    return selects;
}

然后,当然,我将它设置为 bean 变量 dbs。

帮忙吗?

最佳答案

您必须返回 javax.faces.model.SelectItem

Collection

List list = new ArrayList();
list.add(new SelectItem(value, label));

return list;

关于java - JSF - UISelectItems 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728132/

相关文章:

jsf - 访问另一个托管Bean中的JSF托管Bean的值

ajax - 类路径中的 ICEfaces 库可防止文件下载时弹出“另存为”对话框

jsf - 如何在不将图像写入磁盘的情况下在 JSF 中显示缓冲图像?

user-interface - WebGL 中的完整 UI 小部件工具包渲染

java - 从匿名类中检索数据

java - 实现 actionPerformed 的最佳方式?

java - 防止 JTable 中的列在删除时移动

java - 构建端到端 Web 应用程序所需的技术?

java - 如何为所有用户更新页面

jsf - @FacesComponent 中的 @Inject 值 null