I've done this recently for a calculation tree. I just defined a method 
in the jsp, passing in the Message (in your example) and the JSPWriter. 
This method then recursively calls itself while outputting nested html 
tables (ie each call draws a table, with the child call filling a cell 
of it).

-----Original Message-----
From: alex.paransky 
Sent: 19 February 2002 20:12
To: struts-user
Cc: alex.paransky
Subject: Displaying recursively defined bean...


I need to display a recursively defined data structure bean.

I have a bean which looks like this:

public class Message implements java.io.Serializable {
  private String header, body, from;
  private Collection replies;

  public Collection getReplies() {return collection;}
  public String getHeader() {return header;}
  ...
}

As you have guessed, the replies is a collection containing a Message 
type
again.

So, what I want to do is start at the top message (root), and navigate 
down
through the replies.  For each reply, I need to "recurse" into that 
reply
and do the same thing.  How can this be done with JSP, or Struts?  I was
thinking of using the "nested" extension, but that does not work with a
dynamic <jsp:include which is what required in this case.

The other option is to use the pageContext as a stack for the current 
item,
and pass the new Message root in a request, something like this:

showTree.jsp:
1. Read the root Message
2. Place root message into Request with name of "message"
3. <jsp:include page="display.jsp"

display.jsp:
1. Assume there exists an object in request called "message" of type 
Message
2. Display the details of the message
3. Iterate over message.getReplies()
4. For each object in the iteration
   a. Put the object into request with the name of "message"
   b. <jsp:include page="display.jsp"

Has any one done recursive displays using JSP?

Thanks.
-AP_


--
To unsubscribe, e-mail:   
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: 
<mailto:[EMAIL PROTECTED]>



Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to