I knew I had done this before, I just found the code.
Your redirect needs to look something like...
<result name="success" type="redirect">
<param name="location">
myAction.action${foo ? '?foo=' + foo : ''}
</param>
</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]