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]