Forwarding to the previous page
Hi, I have a menu on my application, which is tiled in all the pages. I have an action of the menu which is common to all the page in which I am, so the execute() method of the action class associated to it must return a forward to the page which called it. I know how to map the forward of an action to a specific, struts-config hard-coded page. How can I deal with this kind of dynamic forwarding? Id est forwarding the action to the page which called it? Thanks -- TREMALNAIK - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Forwarding to the previous page
This works very well for me. a class=button href=javascript:history.back()Back/a -Original Message- From: Tremal Naik [mailto:[EMAIL PROTECTED] Sent: Wednesday, September 07, 2005 7:24 AM To: Struts Users Mailing List Subject: Forwarding to the previous page Hi, I have a menu on my application, which is tiled in all the pages. I have an action of the menu which is common to all the page in which I am, so the execute() method of the action class associated to it must return a forward to the page which called it. I know how to map the forward of an action to a specific, struts-config hard-coded page. How can I deal with this kind of dynamic forwarding? Id est forwarding the action to the page which called it? Thanks -- TREMALNAIK - 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]
Re: Forwarding to the previous page
2005/9/7, Duane Rosengartner [EMAIL PROTECTED]: This works very well for me. a class=button href=javascript:history.back()Back/a aehm,probabily I didn't explain well my problem: I don't have to get back to the previous page from the actual. Look at this code: public class DisplayAboutAction extends Action { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // do stuff. ActionForward af = new ActionForward(); af.setPath(previousPagePath); return af; } } I need to get a value for 'previousPagePath'. I'm trying something like : bean:page id=reqq property=request / html:link action=next.do paramId=old_page paramName=reqq paramProperty=servletPath but I'm using Tiles, so what I have as 'old_page' parameter is not the action 'previous.do' but '/jsplayout.jsp' instead thanks, TREMALNAIK - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forwarding to the previous page
You can always get from where the request is coming from by getting the Referer from the Request. String referer = request.getHeader(REFERER); I'm not sure that this is want you want. You must beware that the referrer can be blank when typing in the URL in the browser, plus the consequences of the ActionForm.validate() and errors. HTH, Glenn Tremal Naik [EMAIL PROTECTED] 07/09/2005 12:22 PM Please respond to Struts Users Mailing List user@struts.apache.org To Struts Users Mailing List user@struts.apache.org cc Subject Re: Forwarding to the previous page 2005/9/7, Duane Rosengartner [EMAIL PROTECTED]: This works very well for me. a class=button href=javascript:history.back()Back/a aehm,probabily I didn't explain well my problem: I don't have to get back to the previous page from the actual. Look at this code: public class DisplayAboutAction extends Action { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // do stuff. ActionForward af = new ActionForward(); af.setPath(previousPagePath); return af; } } I need to get a value for 'previousPagePath'. I'm trying something like : bean:page id=reqq property=request / html:link action=next.do paramId=old_page paramName=reqq paramProperty=servletPath but I'm using Tiles, so what I have as 'old_page' parameter is not the action 'previous.do' but '/jsplayout.jsp' instead thanks, TREMALNAIK - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forwarding to the previous page
I don't think there's anything inherently in Struts to do that, however, it shouldn't be too hard to do on your own... how about this right before you return your ActionForward from ANY Action: session.setAttribute(previousPage, mapping.getPath()); That way, assuming everything in your app does go through an Action, which it generally should, than in any other Action you can get that attribute and it represents the last Action that executed... you can then return an appropriate ActionForward to get back to it. It would probably be a bit nicer to do this in a base Action, but that's up to you, the theory is the same. -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Wed, September 7, 2005 12:22 pm, Tremal Naik said: 2005/9/7, Duane Rosengartner [EMAIL PROTECTED]: This works very well for me. a class=button href=javascript:history.back()Back/a aehm,probabily I didn't explain well my problem: I don't have to get back to the previous page from the actual. Look at this code: public class DisplayAboutAction extends Action { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // do stuff. ActionForward af = new ActionForward(); af.setPath(previousPagePath); return af; } } I need to get a value for 'previousPagePath'. I'm trying something like : bean:page id=reqq property=request / html:link action=next.do paramId=old_page paramName=reqq paramProperty=servletPath but I'm using Tiles, so what I have as 'old_page' parameter is not the action 'previous.do' but '/jsplayout.jsp' instead thanks, TREMALNAIK - 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]
Re: Forwarding to the previous page
Consider standard for Struts pre/post actions. You have showForm.do - JSP - submitForm.do - smthElse.do. The preceding action for smthElse.do is submitForm.do, so calling it does not make sense, since it would try to submit a non-existent form. By the way, your advice would work great with Struts Dialogs, where each dialog, that is, a web resource, is controlled by one action only. Apparently, in standard approach with pre/post actions it makes sense only to store pre-actions, that is, the rendering actions. In the case above it would be showForm.do. Michael. On 9/7/05, Frank W. Zammetti [EMAIL PROTECTED] wrote: I don't think there's anything inherently in Struts to do that, however, it shouldn't be too hard to do on your own... how about this right before you return your ActionForward from ANY Action: session.setAttribute(previousPage, mapping.getPath()); That way, assuming everything in your app does go through an Action, which it generally should, than in any other Action you can get that attribute and it represents the last Action that executed... you can then return an appropriate ActionForward to get back to it. It would probably be a bit nicer to do this in a base Action, but that's up to you, the theory is the same. -- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Wed, September 7, 2005 12:22 pm, Tremal Naik said: 2005/9/7, Duane Rosengartner [EMAIL PROTECTED]: This works very well for me. a class=button href=javascript:history.back()Back/a aehm,probabily I didn't explain well my problem: I don't have to get back to the previous page from the actual. Look at this code: public class DisplayAboutAction extends Action { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // do stuff. ActionForward af = new ActionForward(); af.setPath(previousPagePath); return af; } } I need to get a value for 'previousPagePath'. I'm trying something like : bean:page id=reqq property=request / html:link action=next.do paramId=old_page paramName=reqq paramProperty=servletPath but I'm using Tiles, so what I have as 'old_page' parameter is not the action 'previous.do' but '/jsplayout.jsp' instead thanks, TREMALNAIK - 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]
Re: Forwarding to the previous page
2005/9/7, Frank W. Zammetti [EMAIL PROTECTED]: I don't think there's anything inherently in Struts to do that, however, it shouldn't be too hard to do on your own... how about this right before you return your ActionForward from ANY Action: session.setAttribute(previousPage, mapping.getPath()); I was thinking of a navigation bean to store in the user session, but is that 'modifying ANY action' that I was trying to get rid of. thanks -- TREMALNAIK - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Forwarding to the previous page
On Wed, September 7, 2005 12:44 pm, Michael Jouravlev said: Consider standard for Struts pre/post actions. You have showForm.do - JSP - submitForm.do - smthElse.do. The preceding action for smthElse.do is submitForm.do, so calling it does not make sense, since it would try to submit a non-existent form. By the way, your advice would work great with Struts Dialogs, where each dialog, that is, a web resource, is controlled by one action only. Yep, your right, fair point. Maybe the answer, since my other reply was talking about doing it from a base Action, is to only extend from that base Action those Actions that should be return to-able ;) In other words, have your showForm.do extend BaseAction, and smthElse.do extend BaseAction, but NOT submitForm.do. That way you only ever store Actions that can legitimately be returned to, and in this case if you wound up in smthElse.do and wanted to return to the previous page, meaning showForm.do, that's precisely what was last stored in session, NOT submitForm.do, as you point out would be incorrect. Apparently, in standard approach with pre/post actions it makes sense only to store pre-actions, that is, the rendering actions. In the case above it would be showForm.do. Exactly, hence my suggestion. :) Michael. Frank - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]