If I remember correctly, to use the s:iterator tag, you have to use an
object that has an 'iterator()' method. HashMap does not implement
java.util.List...

To iterate over a Hashmap, get the keyset [tempMap.ketSet()] from it.
The keyset is a List and you can get an iterator from there. 

-Wes  

-----Original Message-----
From: Cory D. Wiles [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 12, 2007 2:28 PM
To: user@struts.apache.org
Subject: Iterate Hashmap with s:iterate

I have an action that returns a hash map that I need to output both the
key and value, but I can't figure out how to access each property with
s:iterate.  Any suggestions would help.

The HashMap is being set in my action and returned populated (verified
with <s:debug/>).

// Action snippet
Iterator categoryPhysPropsItr = getCategoryPhysProps().iterator();
Map tempMap                       = new HashMap();
tempMap                              = new TreeMap();

      while (categoryPhysPropsItr.hasNext()) {
        DruglistDrugproperty prop = new DruglistDrugproperty();
        prop = (DruglistDrugproperty) categoryPhysPropsItr.next();

        tempMap.put(prop.getDruglistDrugclass().getDrugClassName(),
prop.getDrugService());

      }

      setDrugClassPropsSrvc(tempMap); // HashMap that needs to be
iterated through // end Action Snippet

// Display JSP
<s:iterator value="drugClassPropsSrvc" status="status">
    Key (<s:property
value="%{drugClassPropsSrvc['+#status.index+'].value}/>")<br/>
    Value (<s:property
value="%{drugClassPropsSrvc['+#status.index+'].value}"/>) <br/>
</s:iterator>

// end Display JSP

Thanks,
Cory

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to