Jump to content

Redirects With Dispatchers


Recommended Posts

Hey Guys, I'm designing an online store. I'm using struts to maintain an MVC-type architecture, but I do not think that should have too much an impact on my issues here. So, when you're shoping online, and you click 'Add to Cart' or whatever, and alot of times it brings you to your cart page and shows the stuff. Well, I made a cart widget that sits in the corner, so that, at least until checkout, you don't need to go to a seperate cart page. So the problem here is that when you click add-to-cart, I want that exact same page to reload, with whatever request paramaters it had before (if there was a search, maintain the searched state, or the page number of the results you were viewing, etc.). So here's some code:

                log.append( LogDate.formatDate(Calendar.getInstance()) + " -- Entered AddToCart\n" );                log.flush();                            long id = Long.parseLong( request.getParameter("prodID") );                                log.append( "\tProductID to Add: " + id + "\n" );                log.append( LogDate.formatDate(Calendar.getInstance()) + " -- Adding Product to Cart (action class)\n" );                log.flush();                                addProduct(id, cart, quantity, log);                                log.append( LogDate.formatDate(Calendar.getInstance()) + " -- Added Product to Cart (action class)\n" );                log.append( LogDate.formatDate(Calendar.getInstance()) + " -- Putting Cart in Session Object\n" );                log.flush();                                session.setAttribute("cart", cart);                session.setAttribute("quantity", quantity);                                log.append( LogDate.formatDate(Calendar.getInstance()) + " -- Cart put in Session Object\n" );                log.flush();                                log.append(LogDate.formatDate(Calendar.getInstance()) + " -- Writing Session Data (addtocart)...\n");                writeSessionData(cart, quantity, log, session);                log.append(LogDate.formatDate(Calendar.getInstance()) + " -- ...Session Data Written! (addtocart)\n");                                String queryString = request.getParameter("sendBackURL");                log.append( "\tQUERYSTRING (sendBackURL) from REQUEST: " + queryString + "\n" );                                if ( queryString != null )                {                    RequestDispatcher dispatcher = request.getRequestDispatcher(ShoppingConstants.homePath + "?" + queryString);                    log.append( "\tdispatcher.toString(): " + dispatcher.toString() + "\n" );                                        if (dispatcher != null)                    {dispatcher.forward(request, response);}                }                                forwardString = "add";

homePath = "shop/shop.do" - it's in a config file of sortsSo, you can see that I do grab the query string successfully, and it gets to the action class, but if you try to use that action, and it tries to dispatch the request to that site, I get an error: The requested resource (Invalid path was requested) is not available. And that's going to be because it maintains both URLs. Here's where it tries to go when the link is clicked:dispatch-eCommerce/shop/shop.do?action=addtocart&prodID=2006&sendBackURL=action=search&d-4929346-p=2&searchWord=ttThe bold is what I want the query string to be - that's it. Once it adds the product to the cart, I don't need to know the 'addtocart' action or the product ID. But, there it is. Is there a way I can modify the code so that when it dispatches, it sends the request to this address?:dispatch-eCommerce/shop/shop.do?action=search&d-4929346-p=2&searchWord=tt

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...