Redirects - Dynamic Parameters 2007-11-06 - By Gary Affonso
Back 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: user-unsubscribe@(protected) For additional commands, e-mail: user-help@(protected)
|
|