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

  2. Christine Mayer

    Daniel Pitts Guest


    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.
     
    Daniel Pitts, Aug 30, 2007
    #2
    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.