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();
                        }


Reply via email to