我一直在使用stuts app我正在使用Integer ArrayList。我需要创建一个下拉列表来列出arraylist。
我一直在尝试使用html:select - > HTML:optioncollection
但我收到了Cannot create iterator for com.SelectTagForm@18488ef
的错误。
代码:
<html:optionsCollection name="selectTagForm"
label="grade" value="grade" />
提前致谢!!!
答案 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属性(可以使用label
和value
配置这些属性的实际名称。这个标签的属性)。你不能从Integer ArrayList中提取类似的东西(正如你所指定的那样)。