You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Joe Hudson <jh...@interviewbot.com> on 2010/11/05 16:01:01 UTC

strange problem with redirect to buffer and URL encoded query string

Hi,

I am using a AjaxFallbackButton within a form.  In this case the
response is saved to a buffer in the session and supposed to be
retrieved in the next page request.

The problem that I am facing is that the second request is providing
URL encoded query string and I can't figure out why...  Here is what I
have tracked down:

The redirect is set by the listener interface request target:
boolean issueRedirect = (strategy ==
IRequestCycleSettings.REDIRECT_TO_RENDER || strategy ==
IRequestCycleSettings.REDIRECT_TO_BUFFER);
* I am set to REDIRECT_TO_BUFFER

In WebApplication.addBufferedResponse, we are properly adding the
buffered response to the map with the key of "wicket:interface=:0::::"

In the BufferedWebResponse, we are calling
httpServletResponse.sendRedirect(url) with the value of
"wicket:interface=:0::::"
* note: the value is URL encoded but even after encoding does not
change from "wicket:interface=:0::::"

On the next call, the query string retreived in WicketFilter (String
queryString = servletRequest.getQueryString();) is
"wicket%3Ainterface=%3A0%3A%3A%3A%3A"

This causes the call to webApplication.popBufferedResponse to execute
with the wrong key which of course finds no buffered response.
* I have verified at this time that the valid buffered response is
still there under the key of "wicket:interface=:0::::"

* I do get a response back except that all component error messages do
not show up because they were rendered to the buffer.


Can anyone please help me understand what is gong on here?  I have
tried evaluating this in firebug to see where this strange URL
encoding is coming from but all I see in Firebug when I look at the
response is "Failed to load source for:
{context}?wicket:interface=:0:wizard:form::IFormSubmitListener::.  I
am using Wicket version 1.4.12 on Ubuntu and have tried this in both
Chrome and FireFox with the same result.

Any help would be greatly appreciated.  Thanks.

Joe

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: strange problem with redirect to buffer and URL encoded query string

Posted by Joe Hudson <jh...@interviewbot.com>.
Thank you very much for the response, Igor.

After looking into this further it seems we might be having problems
with MobileAware.  AFAICT their implementation of encodeRedirectUrl
and sendRedirect perform URL encoding differently.  Thanks again.

Joe


On Sat, Nov 6, 2010 at 10:38 AM, Igor Vaynberg <ig...@gmail.com> wrote:
> trace the java side to see what is encoding the url. it may be a
> number of things, but since its only happennig to you its probably
> something in your environment. also what version of wicket are you
> running?
>
> -igor
>
> On Fri, Nov 5, 2010 at 8:01 AM, Joe Hudson <jh...@interviewbot.com> wrote:
>> Hi,
>>
>> I am using a AjaxFallbackButton within a form.  In this case the
>> response is saved to a buffer in the session and supposed to be
>> retrieved in the next page request.
>>
>> The problem that I am facing is that the second request is providing
>> URL encoded query string and I can't figure out why...  Here is what I
>> have tracked down:
>>
>> The redirect is set by the listener interface request target:
>> boolean issueRedirect = (strategy ==
>> IRequestCycleSettings.REDIRECT_TO_RENDER || strategy ==
>> IRequestCycleSettings.REDIRECT_TO_BUFFER);
>> * I am set to REDIRECT_TO_BUFFER
>>
>> In WebApplication.addBufferedResponse, we are properly adding the
>> buffered response to the map with the key of "wicket:interface=:0::::"
>>
>> In the BufferedWebResponse, we are calling
>> httpServletResponse.sendRedirect(url) with the value of
>> "wicket:interface=:0::::"
>> * note: the value is URL encoded but even after encoding does not
>> change from "wicket:interface=:0::::"
>>
>> On the next call, the query string retreived in WicketFilter (String
>> queryString = servletRequest.getQueryString();) is
>> "wicket%3Ainterface=%3A0%3A%3A%3A%3A"
>>
>> This causes the call to webApplication.popBufferedResponse to execute
>> with the wrong key which of course finds no buffered response.
>> * I have verified at this time that the valid buffered response is
>> still there under the key of "wicket:interface=:0::::"
>>
>> * I do get a response back except that all component error messages do
>> not show up because they were rendered to the buffer.
>>
>>
>> Can anyone please help me understand what is gong on here?  I have
>> tried evaluating this in firebug to see where this strange URL
>> encoding is coming from but all I see in Firebug when I look at the
>> response is "Failed to load source for:
>> {context}?wicket:interface=:0:wizard:form::IFormSubmitListener::.  I
>> am using Wicket version 1.4.12 on Ubuntu and have tried this in both
>> Chrome and FireFox with the same result.
>>
>> Any help would be greatly appreciated.  Thanks.
>>
>> Joe
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: strange problem with redirect to buffer and URL encoded query string

Posted by Igor Vaynberg <ig...@gmail.com>.
trace the java side to see what is encoding the url. it may be a
number of things, but since its only happennig to you its probably
something in your environment. also what version of wicket are you
running?

-igor

On Fri, Nov 5, 2010 at 8:01 AM, Joe Hudson <jh...@interviewbot.com> wrote:
> Hi,
>
> I am using a AjaxFallbackButton within a form.  In this case the
> response is saved to a buffer in the session and supposed to be
> retrieved in the next page request.
>
> The problem that I am facing is that the second request is providing
> URL encoded query string and I can't figure out why...  Here is what I
> have tracked down:
>
> The redirect is set by the listener interface request target:
> boolean issueRedirect = (strategy ==
> IRequestCycleSettings.REDIRECT_TO_RENDER || strategy ==
> IRequestCycleSettings.REDIRECT_TO_BUFFER);
> * I am set to REDIRECT_TO_BUFFER
>
> In WebApplication.addBufferedResponse, we are properly adding the
> buffered response to the map with the key of "wicket:interface=:0::::"
>
> In the BufferedWebResponse, we are calling
> httpServletResponse.sendRedirect(url) with the value of
> "wicket:interface=:0::::"
> * note: the value is URL encoded but even after encoding does not
> change from "wicket:interface=:0::::"
>
> On the next call, the query string retreived in WicketFilter (String
> queryString = servletRequest.getQueryString();) is
> "wicket%3Ainterface=%3A0%3A%3A%3A%3A"
>
> This causes the call to webApplication.popBufferedResponse to execute
> with the wrong key which of course finds no buffered response.
> * I have verified at this time that the valid buffered response is
> still there under the key of "wicket:interface=:0::::"
>
> * I do get a response back except that all component error messages do
> not show up because they were rendered to the buffer.
>
>
> Can anyone please help me understand what is gong on here?  I have
> tried evaluating this in firebug to see where this strange URL
> encoding is coming from but all I see in Firebug when I look at the
> response is "Failed to load source for:
> {context}?wicket:interface=:0:wizard:form::IFormSubmitListener::.  I
> am using Wicket version 1.4.12 on Ubuntu and have tried this in both
> Chrome and FireFox with the same result.
>
> Any help would be greatly appreciated.  Thanks.
>
> Joe
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org