使用html下拉整数数组:select

时间:2010-08-27 09:16:01

标签: java jsp struts

我一直在使用stuts app我正在使用Integer ArrayList。我需要创建一个下拉列表来列出arraylist。

我一直在尝试使用html:select - > HTML:optioncollection

但我收到了Cannot create iterator for com.SelectTagForm@18488ef的错误。

代码:

<html:optionsCollection name="selectTagForm" 
label="grade" value="grade" />

提前致谢!!!

1 个答案:

答案 0 :(得分:1)

这是抛出异常的代码段。它来自optionsCollection标签。

protected Iterator getIterator(Object collection)
  throws JspException {
  if (collection.getClass().isArray()) {
    collection = Arrays.asList((Object[]) collection);
  }
  if (collection instanceof Collection) {
    return (((Collection) collection).iterator());
  } else if (collection instanceof Iterator) {
    return ((Iterator) collection);
  } else if (collection instanceof Map) {
    return (((Map) collection).entrySet().iterator());
  } else if (collection instanceof Enumeration) {
    return new IteratorAdapter((Enumeration) collection);
  } else {
    throw new JspException(messages.getMessage(
        "optionsCollectionTag.iterator", collection.toString()));
  }
}

由于您只发布了一行代码,因此不知道您的完整设置是什么,但很明显您没有向其发送正确的集合(您正在发送com.SelectTagForm,因为错误消息指定了)。

仔细阅读the documentation; here是一个简单的教程。

另一件事,这个标签对bean集合进行操作,其中每个bean都有一个label属性和一个value属性(可以使用labelvalue配置这些属性的实际名称。这个标签的属性)。你不能从Integer ArrayList中提取类似的东西(正如你所指定的那样)。