Thanks for the overview Frank.  I'm using struts 2 and will lookup how to 
writeup AJAX requests to get this done.

Thanks a bunch,
Session


> Is this Struts1 or Struts2?  That will (potentially) change the mechanics
> a little, but in theory, sure, it's easy to do.  Assume Struts1 for a
> moment...
> 
> 1. User triggers event on the page that does the delete.  This causes a 
> Javascript function to be executed. 2. That function makes an AJAX
> request, using your favorite library. 3. Action is invoked (AJAX just
> requests a URL after all, which is what a Struts action mapping is) and
> does its work. 4. Action forwards to a JSP as is typical.  This JSP can be
> something as simple as this:
> 
> <% if (request.getAttribute("deleted") != null) { %> 
> <%=request.getAttribute("nodeID")%> <% } else { %> NOT DELETED <% } %>
> 
> Assuming the action put the "deleted" attribute in request if the delete 
> was accomplished, as well as the ID of the ndoe that was deleted, that's 
> all there is to it.
> 
> 5. The response is returned to the client, and being an AJAX request, some
> Javascript function that you specified at the time the call was made, the
> AJAX callback function, is executed.  Passed to it will be the response
> from the server.  So, you simply do a quick check to see which string got
> returned, and if its != "NOT DELETED", call whatever delete method likely
> exists for the tree widget your using (most provide this), passing it the
> response from the server, which is in fact the ID of the node to delete.
> No need to rebuild the tree, no need to re-render the page, no need to
> return an updated set of data, just delete the one node you need to.
> 
> That's all there is to it.  Now, you don't even need the JSP if you don't
> want to have it, you can write the same response out from the Action, but
> using a JSP, even for something as trivial as this, tends to be more
> flexible and easier to toy with.  AJAX always works this way, basically,
> so if your talking Struts2 you may do some things slightly different
> because there's some built-in AJAX support that might hide some of this
> from you and make it easier, but basically it's the same underlying flow.
> 
> Frank
> 
> -- Frank W. Zammetti Founder and Chief Software Architect Omnytex
> Technologies http://www.omnytex.com AIM/Yahoo: fzammetti MSN:
> [EMAIL PROTECTED] Author of "Practical Ajax Projects With Java
> Technology" (2006, Apress, ISBN 1-59059-695-1) and "JavaScript, DOM
> Scripting and Ajax Projects" (2007, Apress, ISBN 1-59059-816-4) Java Web
> Parts - http://javawebparts.sourceforge.net Supplying the wheel, so you
> don't have to reinvent it!
> 
> Session A Mwamufiya wrote:
>> The jsp page sends a delete request to the struts action that
>> determines whether or not the object associated with the node can be
>> deleted from the database.  The struts action removes the object from
>> the database if all is well, and at this point, I would like to have
>> the struts action notify the jsp that it can remove the node from the
>> tree.  Is there a way to set it up so that the jsp page gets a return
>> value from the action and javascript within the jsp page removes the
>> node accordingly?
>> 
>> Thanks, Session
>> 
>> 
>>> 3. Generate JavaScript in the Ajax result that removes the node (and 
>>> re-renders the tree if necessary; I don't know how all that works)
>>> and execute it.
>>> 
>>> --- Chris Pratt <[EMAIL PROTECTED]> wrote:
>>> 
>>>> You can use the Rhino JavaScript interpreter to execute JavaScript
>>>> from Java, but I don't think that's actually what you are looking
>>>> for.
>>>> 
>>>> It sounds like you are asking "How to I run some JavaScript in the 
>>>> client's browser when something changes on the server?"  And the
>>>> short answer is, you can't.  At least not directly.
>>>> 
>>>> Remember, the web uses a Request/Response model where the Browser
>>>> makes a request and the server returns a response, so there is no
>>>> simple way for the server to initiate something happening in the
>>>> browser.
>>>> 
>>>> Two options I can see are:
>>>> 
>>>> 1. Have the browser make an AJAX request and the server can return
>>>> the new DOM tree without the removed node
>>>> 
>>>> 2. Have the browser resubmit the request and the new page can be
>>>> built without the removed node.
>>>> 
>>>> (*Chris*)
>>>> 
>>>> On 9/6/07, Session A Mwamufiya <[EMAIL PROTECTED]> wrote:
>>>>> Hi,
>>>>> 
>>>>> Does anyone have an example of how to call a
>>>> javascript function from a java class?  I want to call a javascript
>>>>  function that removes a node from a tree after a java class
>>>> removed it from the database.
>>>>> Thanks, Session
>>>>> 
>>>>> 
>>>>> 
>>> ---------------------------------------------------------------------
>>> 
>>>>> 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]
>>> 
>>> 
>>> 
>> 
>> 
>> --------------------------------------------------------------------- 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]

Reply via email to