Sorry.. I was a bit sloppy in naming my variables as I was working (guessing) .. it all makes sense.. it is key and not key().. sigh.
"Behind any velocity variable there's a real Java object.." of course!! Sigh.. Bingo.. now it makes sense.. so simple.. see what the correct perspective can do .. :) Thanks so much.. -----Original Message----- From: Sergiu Dumitriu [mailto:sergiu.dumit...@gmail.com] On Behalf Of Sergiu Dumitriu Sent: Friday, June 01, 2012 5:50 PM To: Velocity Users List Subject: Re: Accessing a key in a java map. On 06/01/2012 01:20 PM, Lukas, Ray wrote: > I have created a java.util.HashMap<String, TressSet<MyJavaObject>> and have > placed that into the $values map which I then pass into Velocity. The name > of a group of things mapped to a sorted set of those things. > I have no problem iterating through the map but I cannot seem to find a way > to access the key (the String) of the map.entry and overlay that into my > form. How is this done. I want to print out the name of the group and then > the group. Common thing to do I would think.. > > #foreach($LabTestTypeEntrySet in > $values.TestTypeGroupedBySpecimenName.keySet()) > $LabTestTypeEntrySet.??? - what goes here ---?? > #foreach($LabTestType in > $values.TestTypeGroupedBySpecimenName.get($LabTestTypeEntrySet) ) > $LabTestType.labTestTypeCode #end #end > > I am kind of new to Velocity and have been hunting for the solution.. can > someone help me out real quick. > Thanks guys.. > Behind any velocity variable there's a real Java object. So, given that, as you said, $values is a HashMap<String, TreeSet>, then what would you do to get the key in Java? There are some things that don't seem to be right in your code... The name of $LabTestTypeEntrySet seems wrong, since the variable that you're iterating with will not hold a set, but only one value at a time, so it should be called $LabTestTypeEntry. $values.TestTypeGroupedBySpecimenName translates into HashMap<String, TreeSet>.get('TestTypeGroupedBySpecimenName'), which returns a value from the map, which should have the type TreeSet<MyJavaObject>. There's no keySet() method for a TreeSet, so that whole #foreach shouldn't have any values to iterate on... Perhaps you placed this whole map as an entry into the the $values object, under the 'TestTypeGroupedBySpecimenName' key? In that case, this code should work: #foreach($LabTestTypeEntry in $values.TestTypeGroupedBySpecimenName.entrySet()) ## Notice that I used entrySet(), not keySet() ## $LabTestTypeEntry.key is the key, of type String ## $LabTestTypeEntry.value is the value, of type TressSet<MyJavaObject> #foreach($LabTestType in $LabTestTypeEntry.value) ## $LabTestType is a MyJavaObject from the TreeSet $LabTestType.labTestTypeCode ## I guess that your MyJavaObject has a getLabTestTypeCode() method #end #end -- Sergiu Dumitriu http://purl.org/net/sergiu/ --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@velocity.apache.org For additional commands, e-mail: user-h...@velocity.apache.org