Iterating over a map with JSTL

Discussion in 'Java' started by Christine Mayer, Aug 30, 2007.

  1. 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 Mayer, Aug 30, 2007
    1. Advertisements

  2. Christine Mayer

    Daniel Pitts Guest

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

    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.
    Daniel Pitts, Aug 30, 2007
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.