my dog learned polymorphism*
The moose likes JSP and the fly likes Recursion & JSTL? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "Recursion & JSTL?" Watch "Recursion & JSTL?" New topic
Author

Recursion & JSTL?

Gail Mikels
Ranch Hand

Joined: May 07, 2001
Posts: 634
I'm pretty sure I know the answer to this, but I'll ask anyway...Is there anyway to use recursion with JSTL?

I have JSP that uses an ArrayList.
The ArrayList contains HashMaps.
The HashMaps contain a key & an ArrayList.
That ArrayList contains HashMaps
The HashMaps contain a key & an ArrayList.
...and so on & so on...

Something like this:



My idea is to use JSTL to navigate down through all the levels, then use JavaScript to make drop-down menu items for each one. I suppose I could count on there being only 5 or 6 levels of menu items, but I would sure hate to hard-code it 5 or 6 times...

Any help, or am I totally going against all proper programming principles here?

Using Tomcat 5.0, JSTL 1.0
[ January 25, 2006: Message edited by: Elaine Micheals ]

Gail Mikels
Merrill Higginson
Ranch Hand

Joined: Feb 15, 2005
Posts: 4864
I don't believe you can do recursion in JSTL, but even if you could, I think it's a better design to do most of the work in a java bean.

For example, create a MenuCreator bean with a getJavaScriptMenu() method. Iside that method you can call other methods recursively to produce the javascript code you need for your menu. Then put the MenuCreator bean in some scope.

Then, in your JSP, just write:

<script>
${menuCreator.javaScriptMenu}
</script>


Merrill
Consultant, Sima Solutions
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61612
    
  67

Firstly, this is also something I'd not attempt directly on-page -- personally, I'd create a custom action (tag) for such a complex structure.

If you must do it in JSP, I'd investigate the use of a tag file that can sort of do recursion by invoking itself.

But...

Using Tomcat 5.0, JSTL 1.0


Bad combo! With Tomcat 5 you should be using JSTL 1.1.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Recursion & JSTL?