struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Affonso <glis...@greywether.com>
Subject Re: Redirects - Dynamic Parameters
Date Wed, 07 Nov 2007 01:29:59 GMT
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: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message