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