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 ? "&amp;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]

Reply via email to