RE: Need to modify the URL path of the forward dynamically
Actually, the conversation on the thread "redirect=true & ActionErrors" has moved to direct email communication. If anybody's interested, I can post an update to this list. About two emails should cover it. --- Manjunath Bhat <[EMAIL PROTECTED]> wrote: > Hi, > You may look into this URL, > http://issues.apache.org/bugzilla/show_bug.cgi?id=866 , which addresses > similar(same) issue. > > Also follow the thread "redirect=true & ActionErrors" in this list. > > Manjunath > > > > > -Original Message- > From: Max Cooper [mailto:[EMAIL PROTECTED] > Sent: Monday, February 09, 2004 2:54 PM > To: Struts Users Mailing List; [EMAIL PROTECTED] > Subject: Re: Need to modify the URL path of the forward dynamically > > Andrew's procedure is what my team has done on one project, too. > Originally, > we tried getting the ActionForward and changing it directly, but it > turns > out that is a shared instance and changing the original was messing up > other > requests. After we discovered this problem, we switched to Andrew's > scheme > of creating a new ActionForward to return from the Action. > > I posted a message today with a note about dynamically adding a query > string > to an ActionForward in the "URL does not change even after changing > action" > thread. This thread has the details about how to do that. > > I am interested to hear from other folks if they have a novel way to do > this > (i.e. add a query string to an ActionForward). Anybody got a better way? > > -Max > > ----- Original Message ----- > From: "Andrew Hill" <[EMAIL PROTECTED]> > To: "Struts Users Mailing List" <[EMAIL PROTECTED]> > Sent: Monday, February 09, 2004 12:36 AM > Subject: RE: Need to modify the URL path of the forward dynamically > > > > Need to modify the URL path of the forward dynamicallyGet the Forward > > instance as usual. Obtain its url string using getPath(). Add your > > additional parameter to end of string and create a new ActionForward > > instance that uses the decorated path (and copies the redirect > property > from > > the original action forward), and return this new actionforward > instance. > > -Original Message- > > From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] > > Sent: Monday, 9 February 2004 16:34 > > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > > Cc: Kamal_Poddar > > Subject: Need to modify the URL path of the forward dynamically > > > > > > Hi, > > > > We have a URL in the path attribute of a forward for an action. We > need > to > > dynamically append some request variables to this URL in the action > class, > > for they are available only at execution time. How can this be > achieved? > > > > E.g > > > > > > type="xxx.yyy.zzz.web.control.action.AdditionalAccountInfoScreenAction" > > name="additionalAccountInfoForm" > > validate="false" > > input="previousPage" > > parameter="populateStmt" > > scope="session"> > >path="http://www.xyz.com/checks/"; > > > > To the URL path here e.g http://www.xyz.com/checks we need to add > > accessId=xxx at run time in the action > > class(http://www.xyz.com/checks?accessId=xxx). > > > > Please let us know how this can be done? > > > > Regards, > > Swaminathan Rajagopalan, > > Ph : (8520261) Extn: 55955 > > 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] > __ Do you Yahoo!? Yahoo! Finance: Get your refund fast by filing online. http://taxes.yahoo.com/filing.html - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Need to modify the URL path of the forward dynamically
I do what Andrew does too. I don't see it as being too laborious, considering that I feel the ActionForward's original URL should be good enough as it is in most cases not to need appending to. Otherwise I think I would look at redesigning my approach in a more Struts-like manner. On 02/09/2004 11:12 AM Manjunath Bhat wrote: Hi, You may look into this URL, http://issues.apache.org/bugzilla/show_bug.cgi?id=866 , which addresses similar(same) issue. Also follow the thread "redirect=true & ActionErrors" in this list. Manjunath -Original Message- From: Max Cooper [mailto:[EMAIL PROTECTED] Sent: Monday, February 09, 2004 2:54 PM To: Struts Users Mailing List; [EMAIL PROTECTED] Subject: Re: Need to modify the URL path of the forward dynamically Andrew's procedure is what my team has done on one project, too. Originally, we tried getting the ActionForward and changing it directly, but it turns out that is a shared instance and changing the original was messing up other requests. After we discovered this problem, we switched to Andrew's scheme of creating a new ActionForward to return from the Action. I posted a message today with a note about dynamically adding a query string to an ActionForward in the "URL does not change even after changing action" thread. This thread has the details about how to do that. I am interested to hear from other folks if they have a novel way to do this (i.e. add a query string to an ActionForward). Anybody got a better way? -Max - Original Message - From: "Andrew Hill" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 12:36 AM Subject: RE: Need to modify the URL path of the forward dynamically Need to modify the URL path of the forward dynamicallyGet the Forward instance as usual. Obtain its url string using getPath(). Add your additional parameter to end of string and create a new ActionForward instance that uses the decorated path (and copies the redirect property from the original action forward), and return this new actionforward instance. -Original Message- From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] Sent: Monday, 9 February 2004 16:34 To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Cc: Kamal_Poddar Subject: Need to modify the URL path of the forward dynamically Hi, We have a URL in the path attribute of a forward for an action. We need to dynamically append some request variables to this URL in the action class, for they are available only at execution time. How can this be achieved? E.g type="xxx.yyy.zzz.web.control.action.AdditionalAccountInfoScreenAction" name="additionalAccountInfoForm" validate="false" input="previousPage" parameter="populateStmt" scope="session"> path="http://www.xyz.com/checks/"; To the URL path here e.g http://www.xyz.com/checks we need to add accessId=xxx at run time in the action class(http://www.xyz.com/checks?accessId=xxx). Please let us know how this can be done? Regards, Swaminathan Rajagopalan, Ph : (8520261) Extn: 55955 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] -- struts 1.1 + tomcat 5.0.16 + java 1.4.2 Linux 2.4.20 Debian - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Need to modify the URL path of the forward dynamically
Hi, You may look into this URL, http://issues.apache.org/bugzilla/show_bug.cgi?id=866 , which addresses similar(same) issue. Also follow the thread "redirect=true & ActionErrors" in this list. Manjunath -Original Message- From: Max Cooper [mailto:[EMAIL PROTECTED] Sent: Monday, February 09, 2004 2:54 PM To: Struts Users Mailing List; [EMAIL PROTECTED] Subject: Re: Need to modify the URL path of the forward dynamically Andrew's procedure is what my team has done on one project, too. Originally, we tried getting the ActionForward and changing it directly, but it turns out that is a shared instance and changing the original was messing up other requests. After we discovered this problem, we switched to Andrew's scheme of creating a new ActionForward to return from the Action. I posted a message today with a note about dynamically adding a query string to an ActionForward in the "URL does not change even after changing action" thread. This thread has the details about how to do that. I am interested to hear from other folks if they have a novel way to do this (i.e. add a query string to an ActionForward). Anybody got a better way? -Max - Original Message - From: "Andrew Hill" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 12:36 AM Subject: RE: Need to modify the URL path of the forward dynamically > Need to modify the URL path of the forward dynamicallyGet the Forward > instance as usual. Obtain its url string using getPath(). Add your > additional parameter to end of string and create a new ActionForward > instance that uses the decorated path (and copies the redirect property from > the original action forward), and return this new actionforward instance. > -Original Message- > From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] > Sent: Monday, 9 February 2004 16:34 > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Cc: Kamal_Poddar > Subject: Need to modify the URL path of the forward dynamically > > > Hi, > > We have a URL in the path attribute of a forward for an action. We need to > dynamically append some request variables to this URL in the action class, > for they are available only at execution time. How can this be achieved? > > E.g > > type="xxx.yyy.zzz.web.control.action.AdditionalAccountInfoScreenAction" > name="additionalAccountInfoForm" > validate="false" > input="previousPage" > parameter="populateStmt" > scope="session"> > http://www.xyz.com/checks/"; > > To the URL path here e.g http://www.xyz.com/checks we need to add > accessId=xxx at run time in the action > class(http://www.xyz.com/checks?accessId=xxx). > > Please let us know how this can be done? > > Regards, > Swaminathan Rajagopalan, > Ph : (8520261) Extn: 55955 > 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: Need to modify the URL path of the forward dynamically
btw: stringNotEmpty(parameter) just does a check to see that the parameter isnt null or "" -Original Message- From: Andrew Hill [mailto:[EMAIL PROTECTED] Sent: Monday, 9 February 2004 17:25 To: Struts Subject: RE: Need to modify the URL path of the forward dynamically >From what Ive seen on the list, the way we are using seems to be pretty much standard practice. I did see some activity on the dev list regarding enhancing forwards to make doing this sort of thing easier, though I wasnt following closely so cant tell you what the outcome was. If its something you need to do a lot you may wish to create a method in your base action class that will take the name of a forward, some parameters to tack on, and go look up the forward and return a new instance with the parameters added to the path. I dont bother with that myself though. I do have some methods to deal with the ? vs & when tacking on the url. Heres the code (2 methods) I use to do the appending (they live in a static class where I dump lots of odds and ends like this!): ummm... the encoder bit... hmmm. You could live without that if you dont try to append funny chars. :-) hehe. The original version of the method was a one-liner. public static String addParameterToURL(String url, String parameter, String value) { try { if(value != null) value = URLEncoder.encode(value, "UTF-8"); } catch(UnsupportedEncodingException e) { throw new NestableRuntimeException("Error encoding value " + quotedString(value),e); } if(url == null) { return parameter + "=" + value; } else { return url + ( (url.indexOf("?")==-1) ? "?" : "&" ) + parameter + "=" + value; } } /** * Uses propertyutils to read parameters from source. Empty/null parameters are NOT appended. */ public static String addParametersToURL(String url, Object source, String[] parameters) { if( source == null ) return url; if( parameters == null || parameters.length == 0 ) return url; StringBuffer buffer = new StringBuffer(url == null ? "" : url); for( int i = 0; i < parameters.length; i++ ) { String parameter = parameters[i]; if( stringNotEmpty(parameter) ) { String value = null; try { value = stringValue( PropertyUtils.getProperty(source, parameter) ); } catch(Throwable t) { value = null; } if( StaticUtils.stringNotEmpty(value) ) { buffer.append( buffer.indexOf("?")==-1 ? "?" : "&" ); buffer.append(parameter); buffer.append("="); try { buffer.append(URLEncoder.encode(value, "UTF-8")); } catch(UnsupportedEncodingException e) { throw new NestableRuntimeException("Error encoding value " + quotedString(value),e); } } } } return buffer.toString(); } -Original Message----- From: Max Cooper [mailto:[EMAIL PROTECTED] Sent: Monday, 9 February 2004 17:24 To: Struts Users Mailing List; [EMAIL PROTECTED] Subject: Re: Need to modify the URL path of the forward dynamically Andrew's procedure is what my team has done on one project, too. Originally, we tried getting the ActionForward and changing it directly, but it turns out that is a shared instance and changing the original was messing up other requests. After we discovered this problem, we switched to Andrew's scheme of creating a new ActionForward to return from the Action. I posted a message today with a note about dynamically adding a query string to an ActionForward in the "URL does not change even after changing action" thread. This thread has the details about how to do that. I am interested to hear from other folks if they have a novel way to do this (i.e. add a query string to an ActionForward). Anybody got a better way? -Max ----- Original Message - From: "Andrew Hill" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 12:36 AM Subject: RE: Need to modify the URL path of the forward dynamically > Need to modify the URL path of the forward dynamicallyGet the Forward > instance as usual. Obtain its url string using getPath(). Add your > additional parameter to end of string and create a new ActionForward > instance that uses the decorated path (and copies the redirect property from > the original action forward), and return this new actionforward instance. > -----Original Message- > From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] > Sent: Monday, 9 February 2004 16:34 > T
RE: Need to modify the URL path of the forward dynamically
>From what Ive seen on the list, the way we are using seems to be pretty much standard practice. I did see some activity on the dev list regarding enhancing forwards to make doing this sort of thing easier, though I wasnt following closely so cant tell you what the outcome was. If its something you need to do a lot you may wish to create a method in your base action class that will take the name of a forward, some parameters to tack on, and go look up the forward and return a new instance with the parameters added to the path. I dont bother with that myself though. I do have some methods to deal with the ? vs & when tacking on the url. Heres the code (2 methods) I use to do the appending (they live in a static class where I dump lots of odds and ends like this!): ummm... the encoder bit... hmmm. You could live without that if you dont try to append funny chars. :-) hehe. The original version of the method was a one-liner. public static String addParameterToURL(String url, String parameter, String value) { try { if(value != null) value = URLEncoder.encode(value, "UTF-8"); } catch(UnsupportedEncodingException e) { throw new NestableRuntimeException("Error encoding value " + quotedString(value),e); } if(url == null) { return parameter + "=" + value; } else { return url + ( (url.indexOf("?")==-1) ? "?" : "&" ) + parameter + "=" + value; } } /** * Uses propertyutils to read parameters from source. Empty/null parameters are NOT appended. */ public static String addParametersToURL(String url, Object source, String[] parameters) { if( source == null ) return url; if( parameters == null || parameters.length == 0 ) return url; StringBuffer buffer = new StringBuffer(url == null ? "" : url); for( int i = 0; i < parameters.length; i++ ) { String parameter = parameters[i]; if( stringNotEmpty(parameter) ) { String value = null; try { value = stringValue( PropertyUtils.getProperty(source, parameter) ); } catch(Throwable t) { value = null; } if( StaticUtils.stringNotEmpty(value) ) { buffer.append( buffer.indexOf("?")==-1 ? "?" : "&" ); buffer.append(parameter); buffer.append("="); try { buffer.append(URLEncoder.encode(value, "UTF-8")); } catch(UnsupportedEncodingException e) { throw new NestableRuntimeException("Error encoding value " + quotedString(value),e); } } } } return buffer.toString(); } -Original Message----- From: Max Cooper [mailto:[EMAIL PROTECTED] Sent: Monday, 9 February 2004 17:24 To: Struts Users Mailing List; [EMAIL PROTECTED] Subject: Re: Need to modify the URL path of the forward dynamically Andrew's procedure is what my team has done on one project, too. Originally, we tried getting the ActionForward and changing it directly, but it turns out that is a shared instance and changing the original was messing up other requests. After we discovered this problem, we switched to Andrew's scheme of creating a new ActionForward to return from the Action. I posted a message today with a note about dynamically adding a query string to an ActionForward in the "URL does not change even after changing action" thread. This thread has the details about how to do that. I am interested to hear from other folks if they have a novel way to do this (i.e. add a query string to an ActionForward). Anybody got a better way? -Max ----- Original Message ----- From: "Andrew Hill" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 12:36 AM Subject: RE: Need to modify the URL path of the forward dynamically > Need to modify the URL path of the forward dynamicallyGet the Forward > instance as usual. Obtain its url string using getPath(). Add your > additional parameter to end of string and create a new ActionForward > instance that uses the decorated path (and copies the redirect property from > the original action forward), and return this new actionforward instance. > -Original Message- > From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] > Sent: Monday, 9 February 2004 16:34 > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Cc: Kamal_Poddar > Subject: Need to modify the URL path of the forward dynamically > > > Hi, > > We have a URL in the path attribute of a forward for an action. We need to > dynamically append some reque
Re: Need to modify the URL path of the forward dynamically
Andrew's procedure is what my team has done on one project, too. Originally, we tried getting the ActionForward and changing it directly, but it turns out that is a shared instance and changing the original was messing up other requests. After we discovered this problem, we switched to Andrew's scheme of creating a new ActionForward to return from the Action. I posted a message today with a note about dynamically adding a query string to an ActionForward in the "URL does not change even after changing action" thread. This thread has the details about how to do that. I am interested to hear from other folks if they have a novel way to do this (i.e. add a query string to an ActionForward). Anybody got a better way? -Max - Original Message - From: "Andrew Hill" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Monday, February 09, 2004 12:36 AM Subject: RE: Need to modify the URL path of the forward dynamically > Need to modify the URL path of the forward dynamicallyGet the Forward > instance as usual. Obtain its url string using getPath(). Add your > additional parameter to end of string and create a new ActionForward > instance that uses the decorated path (and copies the redirect property from > the original action forward), and return this new actionforward instance. > -Original Message- > From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] > Sent: Monday, 9 February 2004 16:34 > To: [EMAIL PROTECTED]; [EMAIL PROTECTED] > Cc: Kamal_Poddar > Subject: Need to modify the URL path of the forward dynamically > > > Hi, > > We have a URL in the path attribute of a forward for an action. We need to > dynamically append some request variables to this URL in the action class, > for they are available only at execution time. How can this be achieved? > > E.g > > type="xxx.yyy.zzz.web.control.action.AdditionalAccountInfoScreenAction" > name="additionalAccountInfoForm" > validate="false" > input="previousPage" > parameter="populateStmt" > scope="session"> > http://www.xyz.com/checks/"; > > To the URL path here e.g http://www.xyz.com/checks we need to add > accessId=xxx at run time in the action > class(http://www.xyz.com/checks?accessId=xxx). > > Please let us know how this can be done? > > Regards, > Swaminathan Rajagopalan, > Ph : (8520261) Extn: 55955 > Mail : [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Need to modify the URL path of the forward dynamically
Need to modify the URL path of the forward dynamicallyGet the Forward instance as usual. Obtain its url string using getPath(). Add your additional parameter to end of string and create a new ActionForward instance that uses the decorated path (and copies the redirect property from the original action forward), and return this new actionforward instance. -Original Message- From: Swaminathan Rajagopalan [mailto:[EMAIL PROTECTED] Sent: Monday, 9 February 2004 16:34 To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Cc: Kamal_Poddar Subject: Need to modify the URL path of the forward dynamically Hi, We have a URL in the path attribute of a forward for an action. We need to dynamically append some request variables to this URL in the action class, for they are available only at execution time. How can this be achieved? E.g http://www.xyz.com/checks/"; To the URL path here e.g http://www.xyz.com/checks we need to add accessId=xxx at run time in the action class(http://www.xyz.com/checks?accessId=xxx). Please let us know how this can be done? Regards, Swaminathan Rajagopalan, Ph : (8520261) Extn: 55955 Mail : [EMAIL PROTECTED]
Need to modify the URL path of the forward dynamically
Title: Need to modify the URL path of the forward dynamically Hi, We have a URL in the path attribute of a forward for an action. We need to dynamically append some request variables to this URL in the action class, for they are available only at execution time. How can this be achieved? E.g type="xxx.yyy.zzz.web.control.action.AdditionalAccountInfoScreenAction" name="additionalAccountInfoForm" validate="false" input="previousPage" parameter="populateStmt" scope="session"> http://www.xyz.com/checks/" To the URL path here e.g http://www.xyz.com/checks we need to add accessId=xxx at run time in the action class(http://www.xyz.com/checks?accessId=xxx). Please let us know how this can be done? Regards, Swaminathan Rajagopalan, Ph : (8520261) Extn: 55955 Mail : [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]