Iterating over a map with JSTL

C

Christine Mayer

Hi,

I've got an object that contains 2 attributes - a String and a map,
which contains a set of Strings.
I want to iterate over these objects, and so I also want to iterate
over the map, and print out key and value.
I've read this wasn't possible and one should instead iterate over the
values, something like:
<c:forEach var="loop" items="${hashmap.values}"

But that just isn't what I need - I need both, key and value. I know I
could also just as well create a proprietary object that contains 2
Strings each - but imho in this case this is just too much overhead.

What can you recommend me to do? Maybe I should write a method into my
bean "getNextKey" and "getNextValue - the problem is if someone would
call "getNextKey" on the view twice then the keys and values wouldn't
mach anymore - in otherwise I would like to leave the control of the
map to Java...

Thanks in advance,

Christine
 
D

Daniel Pitts

Hi,

I've got an object that contains 2 attributes - a String and a map,
which contains a set of Strings.
I want to iterate over these objects, and so I also want to iterate
over the map, and print out key and value.
I've read this wasn't possible and one should instead iterate over the
values, something like:
<c:forEach var="loop" items="${hashmap.values}"

But that just isn't what I need - I need both, key and value. I know I
could also just as well create a proprietary object that contains 2
Strings each - but imho in this case this is just too much overhead.

What can you recommend me to do? Maybe I should write a method into my
bean "getNextKey" and "getNextValue - the problem is if someone would
call "getNextKey" on the view twice then the keys and values wouldn't
mach anymore - in otherwise I would like to leave the control of the
map to Java...

Thanks in advance,

Christine


have you tried (this is untested)
<c:forEach var="entry" items="${hashmap}">
${entry.key} = ${entry.value}
</c:forEach>

Or, if you can iterator over the keySet(), you can get the value that
corrisponds to that key: <c:forEach var="key" items="$
{hashmap.keySet}"> ${key] = ${hasmap[key]}


I haven't tested these, so they might not work. Let me know if they do.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top