Re: JSTL: getting a map's keys
On Monday, March 19, 2012 11:15:52 AM UTC-7, Chris Riesbeck wrote:
Can anyone help me figure out why the following is happening, or further
experiments I can run? (I have workarounds but I'd like to know what I'm
misunderstanding.)
Given:
- SimTable, a subclass of HashTable [sic] that defines getKeys() to call
If you mean 'java.util.Hashtable', that's a rather obsolete class. You should stick with 'java.util.HashMap'.
keyset()
Joshua Bloch recommends to prefer composition over inheritance.
- a session variable "data" which is a HashTable with "rates" set to
an instance of a SimTable
If "rates" is set to an instance of a 'HashTable', or whatever, is 'data' then a 'Map<String,Map<?,?>>'?
Why does ${rates.keys} generate nothing in these lines of JSP?
How about you follow the advice here:
http://sscce.org/
and then maybe we can help you. It would make it easier for you to answer the questions I'm asking.
I think perhaps you're overthinking the session vars. Why can't your 'rates' Map go in there directly?
<c:set var="rates" value='${data["rates"]}'/>
rates: ${rates}</p>
jstl: ${rates.keys}</p>
jsp: <%= ((edu.northwestern.ils.simulator.SimTable)
pageContext.findAttribute("rates")).getKeys() %></p>
Here's the generated HTML output:
rates: {Bill=100.0, Fred=75.0, Jane=75.0, Mary=50.0, Sam=75.0,
Sarah=150.0}</p>
jstl: </p>
jsp: [Bill, Fred, Jane, Mary, Sam, Sarah]</p>
Your example code is fragmented and incomplete. Give us something we can work with, please.
--
Lew