Author: knopp
Date: Sun Feb 10 13:38:23 2008
New Revision: 620337
URL: http://svn.apache.org/viewvc?rev=620337&view=rev
Log:
Do not use REDIRECT_TO_BUFFER for stateless pages
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java?rev=620337&r1=620336&r2=620337&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
Sun Feb 10 13:38:23 2008
@@ -40,7 +40,7 @@
* bookmarkable pages as well as non-bookmarkable component interfaces. The
protected handleRender
* method is the internal entrypoint which takes care of the details of
rendering a response to an
* HTTP request.
- *
+ *
* @see RequestCycle
* @author Jonathan Locke
* @author Johan Compagner
@@ -60,7 +60,7 @@
/**
* Constructor which simply passes arguments to superclass for storage
there. This instance will
* be set as the current one for this thread.
- *
+ *
* @param application
* The application
* @param request
@@ -69,7 +69,7 @@
* The response
*/
public WebRequestCycle(final WebApplication application, final
WebRequest request,
- final Response response)
+ final Response response)
{
super(application, request, response);
}
@@ -83,7 +83,7 @@
* [EMAIL PROTECTED] #onRuntimeException(Page, RuntimeException)} is
not called unless you deliberately put
* effort in it to make it work.</strong>
* </p>
- *
+ *
* @see org.apache.wicket.RequestCycle#getProcessor()
*/
public IRequestCycleProcessor getProcessor()
@@ -120,7 +120,7 @@
* directly, but work with setResponsePage instead. This method is part
of Wicket's internal
* behavior and should only be used when you want to circumvent the
normal framework behavior
* and issue the redirect directly.
- *
+ *
* @param page
* The page to redirect to
*/
@@ -131,7 +131,8 @@
// Check if use serverside response for client side redirects
IRequestCycleSettings settings =
application.getRequestCycleSettings();
if ((settings.getRenderStrategy() ==
IRequestCycleSettings.REDIRECT_TO_BUFFER) &&
- (application instanceof WebApplication) &&
!(getWebRequest().isAjax()))
+ (application instanceof WebApplication) &&
!(getWebRequest().isAjax()) &&
+ (!page.isPageStateless()))
{
// remember the current response
final WebResponse currentResponse = getWebResponse();
@@ -142,12 +143,11 @@
// Get the redirect url and set it in
the ServletWebRequest
// so that it can be used for relative
url calculation.
((ServletWebRequest)getWebRequest()).setWicketRedirectUrl(Strings.replaceAll(
-
page.urlFor(IRedirectListener.INTERFACE).toString(), "../", "")
- .toString());
+
page.urlFor(IRedirectListener.INTERFACE).toString(), "../", "").toString());
}
// create the redirect response.
final BufferedHttpServletResponse
servletResponse = new BufferedHttpServletResponse(
-
currentResponse.getHttpServletResponse());
+
currentResponse.getHttpServletResponse());
final WebResponse redirectResponse = new
WebResponse(servletResponse)
{
public CharSequence
encodeURL(CharSequence url)
@@ -198,9 +198,9 @@
String stripped =
Strings.replaceAll(redirectUrl, "../", "").toString();
int index = stripped.indexOf("?");
String sessionId =
getApplication().getSessionStore().getSessionId(request,
- true);
-
((WebApplication)application).addBufferedResponse(sessionId, stripped
- .substring(index + 1),
servletResponse);
+ true);
+
((WebApplication)application).addBufferedResponse(sessionId,
+ stripped.substring(index + 1),
servletResponse);
}
}
catch (RuntimeException ex)
@@ -272,7 +272,7 @@
/**
* If it's an ajax request we always redirect.
- *
+ *
* @see org.apache.wicket.RequestCycle#isRedirect()
*/
public final boolean isRedirect()