Hi Session I don't know if it can be done only via the struts tags but I was able to achieve this by using some dojo javascript code in my jsp.
Here are some code snippets that might solve your problem <html> <head> . . . <s:head theme="ajax" debug="true"/> //The following extensions are required to save or restore state of a tree dojo.require("dojo.widget.TreeLoadingController"); dojo.require("dojo.widget.TreeControllerExtension"); dojo.addOnLoad(function() { dojo.lang.mixin(dojo.widget.byId('treeController'), dojo.widget.TreeControllerExtension.prototype); //The following code will make sure that the saveExpandedIndices function is called everytime a node //is collapsed or expanded dojo.event.topic.subscribe("contentTree/expand",saveExpandedIndices); dojo.event.topic.subscribe("contentTree/collapse",saveExpandedIndices); }); //The following function saves the state of the tree function saveExpandedIndices() { // You can save this object as tree persistent state indices = dojo.widget.byId('treeController').saveExpandedIndices( dojo.widget.byId('contentTree') ); /* * "indices" is a javascript object which is nothing but a multi-dimension arrays containing indices of all expanded nodes * I am saving this object inside a cookie. You can have a different implementation... * I am using json.js to convert the object into a string * and then a custom function called storeCookie which stores the string in a cookie */ storeCookie("categoryTreeState",indices.toJSONString(),1); } . . . //The following function restores the state of the tree. This can probably be called body-onload //You will have to pass it the stored indices object though function restoreExpandedIndices(indices) { dojo.widget.byId('treeController').restoreExpandedIndices( dojo.widget.byId('contentTree'), indices ); } . . . </head> <body> . . . <div dojoType="TreeLoadingController" widgetId="treeController" RPCUrl="local"></div> <s:tree id="contentTree" name="contentTree" theme = "ajax" rootNode="%{category}" childCollectionProperty="categoryList" nodeIdProperty="identifierString" nodeTitleProperty="name"> </s:tree> . . . </body> Hope this helps. Manu -----Original Message----- From: Session A Mwamufiya [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 05, 2007 10:34 PM To: Struts Users Mailing List Cc: Struts Users Mailing List Subject: Re: reloading a tree at a certain level of expension Anyone knows whether this feature has been added in yet? > Session A Mwamufiya wrote: >> I'm relaunching this thread in case an s:tree expert may have missed it >> the first time around :). >> >>> Is there a way that when a s:tree is reloaded, it expends to a >>> particular level of expansion? I presume that I will save that >>> expansion level in my session object, but I'm not sure how to get it >>> or set the tree to it, or if it's even possible. > > > Looking into TreeSelector API I found a selectedNode parameter - will it > do the job? Feel free to ask Struts2 developers to include selectedNode > parameter into s:tree tag if is does what you expect (and if it's not > included there yet - sometimes S2 code changes faster than its > documentation). > > Oleg > > --------------------------------------------------------------------- To > unsubscribe, e-mail: [EMAIL PROTECTED] For additional > commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]