The optionsCollection tag is expecting a collection of objects that it can call .getLabel() and .getValue() on (by default but it can be changed with parameters). To get a list of objects from a map you normally call object.entrySet which you can then iterate over. The entry set is a set of Map.Entry objects (they have getKey and getValue methods).
So it looks like the tag is trying to do a .getLabel() on the Map.Entry object. If the tag does accept maps I would have expected that it knows about Map.Entry objects.
I normally use List objects with pull-downs instead, like this:
List eventGroups = new ArrayList(); eventGroups.add(new LabelValueBean("Label 1","Value 1")); eventGroups.add(new LabelValueBean("Label 2","Value 2")); eventGroups.add(new LabelValueBean("Label 3","Value 3")); ((EventGroupBean)form).setEventGroups( eventGroups );
Lars Bergström wrote:
Dear Struts users,
I am trying to get my html:optionsCollection to work with a TreeMap. I don't know if this is possible but on the Struts API page for the class OptionsCollectionTag I read the following:
"The collection may be an array of objects, a Collection, an Enumeration, an Iterator, or a Map." ( http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/Opti onsCollectionTag.html)
Since TreeMap implements SortedMap which is a subinterface of Map, TreeMap should work fine, right?
However, when the page is loaded I get the folloing error text: "HTTP ERROR: 500 No getter method available for property label for bean under name 1=LabelValueBean[Label 1, Value 1]"
Can anyone explain this error message? This seems strange to me.
The returntype in my ActionFormBean is TreeMap and the code snippet where I build up the TreeMap is like this:
eventGroups = new TreeMap(); eventGroups.put( new String( "1" ), new LabelValueBean( "Label 1", "Value 1" ) ); eventGroups.put( new String( "2" ), new LabelValueBean( "Label 2", "Value 2" ) ); eventGroups.put( new String( "3" ), new LabelValueBean( "Label 3", "Value 3" ) ); ((EventGroupBean)form).setEventGroups( eventGroups ); (
Best regards
Lasse
-- Jason Lea
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]