File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Struts and the fly likes Force a reload after form submit? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Force a reload after form submit?" Watch "Force a reload after form submit?" New topic

Force a reload after form submit?

Brett Han

Joined: May 17, 2005
Posts: 10
Hello - this may be a simple question - I'm new to struts and have been figuring out ways to do what I want, but I'm afraid that there are often better ways to do them using struts.

My current problem is as follows:

I have a form bean which contains a Collection of items. I print out the list of items, each with a checkbox to delete them (essentially the same idea as a shopping cart with 'remove from cart' checkboxes). So the user can check n boxes, and hit the delete button which submits the form with the appropriate parameter.

The action class actually does the work of deleting the items (the mechanics are unimportant). I simply want the resulting page to show the list of items, minus the ones that were just deleted. However it doesn't do this until I refresh the page.

I've tried using forwards in struts_config.xml file (i.e. returning mapping.findForward("delete_success") from the execute() method in my Action class after the deletion is successful), but I want the page to which I'm forwarded to to include the original page (list of items). It's never up to date until I refresh. I can confirm that the items are deleted.

I'm not sure if this is some caching problem or a simple struts thing that I'm missing.

I assume this is a common task, as every shopping cart system must work this way.

Thanks for any advice.
alan do
Ranch Hand

Joined: Apr 14, 2005
Posts: 354
you have a /cart/ (or something like that) to present the cart initially correct? in your action mapping for the cart update action then forward it to that /cart/ ex:

<action name="/cart/"....>
<forward name="delete_success" path="/cart/"/>

if you're already doing this, it's a caching issue. you can test it out by disable caching for the entire app by setting the controller property in the struts config as follows:

<set-property property="nocache" value="true"/>

this will disable caching for the ENTIRE app, which may not be desirable. you can modify the Action class to selectively disable response cache.

-/a<br />certified slacker...yes, my last name is 'do' - <a href="" target="_blank" rel="nofollow"></a>
I agree. Here's the link:
subject: Force a reload after form submit?
It's not a secret anymore!