Hi, Thanks for your helpful post! Interestingly, this also works with redirect actions. Since I have not seen any examples anywhere out there, I thought I also post an example for them:
<result name="success" type="redirectAction"> mySuccess?fooId=${fooId}${bartId ? "&barId=" + barId : ""} </result> Cheers, Gunnar Gary Affonso wrote: > > I knew I had done this before, I just found the code. > > Your redirect needs to look something like... > > <result name="success" type="redirect"> > > myAction.action${foo ? '?foo=' + foo : ''} > > </result> > > Note that I'm pretty sure your OGNL lookups are not going to get > url-escaped. > > The above assumes that "foo" is a property of the Action and available > to OGNL (a getter). If foo lives somewhere else (like in the session, > for instance) then you'll need to do a little more work to write the > proper ognl reference. > > Anyway, hope that helps. I think the above is (mostly) right this time. > :-) > > - Gary > > > Gary Affonso wrote: >> I think you already know this, but in case you don't... When you >> specify the action to redirect to, you have access to the OGNL stack. >> >> So your redirect may look something like this.. >> >> <result name="success"type="redirect"> >> myAction.action?param=${paramValue} >> </result> >> >> I think what you're asking is, if "param" has no value, you don't want >> to see *anything* in the url. Neither the key nor the value of the >> key/value pair. Right? >> >> So it should be just a matter of coming up with an OGNL expression that >> tests for null before inserting either part of the key/value pair. >> >> Something like: >> >> myAction.action?${paramValue ? '' : 'param=' + paramValue} >> >> Note, that's *totally* off-the-cuff. I know OGNL does have the ternary >> operator ( condition ? e2 : e3) but the string quoting, null checks, >> ${}, string concatenation, etc. is probably all be wrong in that line >> above. :-) >> >> The point is that I think all you need to do is be a little more >> sophisticated about the OGNL string. You just gotta go learn a bit more >> about OGNL. >> >> The OGNL language reference (at least the one I know about) is here: >> >> http://www.ognl.org/2.6.9/Documentation/html/LanguageGuide/index.html >> >> - Gary >> >> Gunnar Hillert wrote: >>> Hi, >>> >>> A typical requirement in my webapps is to "redirect" to result pages >>> after >>> form submission. >>> This is quite nicely described here: >>> http://www.vitarara.org/cms/struts_2_cookbook/post_and_redirect >>> >>> This works great but here is my question: >>> >>> Is there a way to dynamically create parameters? For instance, I have >>> use >>> cases where I don't have to provide all parameters in my redirects at >>> all >>> times. Thus, if the value of variable foo is null in my action I don't >>> want >>> to use the variable in my redirect. I hate to see >>> .../myaction.action?foo=&bar=1 in my urls. >>> >>> Is there anything in Struts that would allow this? E.g. some additional >>> attribute on the param element would be nice ${foo} >>> >>> Or do I have to create my own "custom" result-type? >>> >>> Thanks! >>> >>> Gunnar Hillert >> >> >> --------------------------------------------------------------------- >> 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] > > > -- View this message in context: http://www.nabble.com/Redirects---Dynamic-Parameters-tf4758978.html#a13638069 Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]