2010-08-27 13 views
0

J'ai travaillé sur l'application stuts où j'utilise Integer ArrayList. J'ai besoin de créer une liste déroulante pour lister l'arrayliste.Liste déroulante pour tableau Integer utilisant html: select

J'ai essayé d'utiliser html: select -> html: optioncollection. Mais je reçois erreur de Cannot create iterator for [email protected].

code:

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

Merci à l'avance !!!

Répondre

1

Ceci est le morceau de code qui lève l'exception. C'est à partir de la balise 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())); 
    } 
} 

Je ne sais pas ce que votre installation complète est depuis que vous avez publié une seule ligne de code, mais il est évident que vous ne l'envoyez la collection à droite (vous envoyez un com.SelectTagForm comme le message d'erreur indique).

Lisez attentivement the documentation; et here est un tutoriel simple. Autre chose, cette balise fonctionne sur une collection de beans, où chaque bean a une propriété label et une propriété value (les noms réels de ces propriétés peuvent être configurés à l'aide des attributs label et value de cette balise). Vous ne pouvez pas extraire quelque chose comme ça à partir d'un Integer ArrayList (comme vous l'avez spécifié).