Author: pedro
Date: Mon Mar 21 19:50:14 2011
New Revision: 1083926
URL: http://svn.apache.org/viewvc?rev=1083926&view=rev
Log:
preventing responses for component request from being cached
Issue: WICKET-3466
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ComponentRenderingRequestHandler.java
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ComponentRenderingRequestHandler.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ComponentRenderingRequestHandler.java?rev=1083926&r1=1083925&r2=1083926&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ComponentRenderingRequestHandler.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ComponentRenderingRequestHandler.java
Mon Mar 21 19:50:14 2011
@@ -19,6 +19,7 @@ package org.apache.wicket.request.handle
import org.apache.wicket.Component;
import org.apache.wicket.request.IRequestCycle;
import org.apache.wicket.request.component.IRequestableComponent;
+import org.apache.wicket.request.http.WebResponse;
/**
* Request handler that renders a component
@@ -51,6 +52,12 @@ public class ComponentRenderingRequestHa
public void respond(IRequestCycle requestCycle)
{
+ // preventing the response to component from being cached
+ if (requestCycle.getResponse() instanceof WebResponse)
+ {
+ WebResponse response =
(WebResponse)requestCycle.getResponse();
+ response.disableCaching();
+ }
component.render();
}
Modified:
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java?rev=1083926&r1=1083925&r2=1083926&view=diff
==============================================================================
---
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
(original)
+++
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
Mon Mar 21 19:50:14 2011
@@ -21,7 +21,12 @@ import org.apache.wicket.markup.html.bas
import org.apache.wicket.markup.html.link.ILinkListener;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.handler.ComponentRenderingRequestHandler;
+import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler;
+import org.apache.wicket.request.handler.PageAndComponentProvider;
import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -71,8 +76,12 @@ public class Index extends WicketExample
@Override
protected String getOnClickScript(CharSequence url)
{
+ IRequestHandler handler = new
ListenerInterfaceRequestHandler(
+ new PageAndComponentProvider(getPage(),
this), ILinkListener.INTERFACE);
+ Url componentUrl =
RequestCycle.get().mapUrlFor(handler);
+ componentUrl.addQueryParameter("anticache",
Math.random());
return new AppendingStringBuffer("new
Ajax.Updater('counter', '").append(
- urlFor(ILinkListener.INTERFACE))
+ componentUrl)
.append("', {method:'get'}); return
false;")
.toString();
}