Author: pedro
Date: Mon Mar 21 18:45:16 2011
New Revision: 1083895
URL: http://svn.apache.org/viewvc?rev=1083895&view=rev
Log:
merging WebResponse#disableCache be used in the ComponentRequestTarget
preventing cached responses in the AJAX with prototype example
Issue: WICKET-3466
Modified:
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
Modified:
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
---
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
(original)
+++
wicket/branches/wicket-1.4.x/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/prototype/Index.java
Mon Mar 21 18:45:16 2011
@@ -22,9 +22,9 @@ 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.protocol.http.WebResponse;
import org.apache.wicket.request.target.component.ComponentRequestTarget;
import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.value.ValueMap;
/**
@@ -60,20 +60,8 @@ public class Index extends WicketExample
{
// Increment count
count++;
-
// The response should refresh the label
displaying the counter.
- getRequestCycle().setRequestTarget(new
ComponentRequestTarget(counter)
- {
- @Override
- public void respond(RequestCycle
requestCycle)
- {
- super.respond(requestCycle);
- WebResponse response =
(WebResponse)requestCycle.getResponse();
- response.setHeader("Pragma",
"no-cache");
-
response.setHeader("Cache-Control",
- "no-cache, no-store,
max-age=0, must-revalidate");
- }
- });
+ getRequestCycle().setRequestTarget(new
ComponentRequestTarget(counter));
}
/**
@@ -83,8 +71,10 @@ public class Index extends WicketExample
@Override
protected String getOnClickScript(String url)
{
+ ValueMap valueMap = new ValueMap();
+ valueMap.add("anticache", "" + Math.random());
return new AppendingStringBuffer("new
Ajax.Updater('counter', '").append(
- urlFor(ILinkListener.INTERFACE))
+ RequestCycle.get().urlFor(this,
ILinkListener.INTERFACE, valueMap))
.append("', {method:'get'}); return
false;")
.toString();
}
Modified:
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
---
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
(original)
+++
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/protocol/http/WebResponse.java
Mon Mar 21 18:45:16 2011
@@ -497,4 +497,15 @@ public class WebResponse extends Respons
{
this.ajax = ajax;
}
+
+ /**
+ * Make this response non-cacheable
+ */
+ public void disableCaching()
+ {
+ setDateHeader("Date", System.currentTimeMillis());
+ setDateHeader("Expires", 0);
+ setHeader("Pragma", "no-cache");
+ setHeader("Cache-Control", "no-cache, no-store");
+ }
}
Modified:
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java?rev=1083895&r1=1083894&r2=1083895&view=diff
==============================================================================
---
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
(original)
+++
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
Mon Mar 21 18:45:16 2011
@@ -19,6 +19,7 @@ package org.apache.wicket.request.target
import org.apache.wicket.Component;
import org.apache.wicket.Page;
import org.apache.wicket.RequestCycle;
+import org.apache.wicket.protocol.http.WebResponse;
/**
* Default implementation of
@@ -74,6 +75,12 @@ public class ComponentRequestTarget impl
// Render the component
component.renderComponent();
}
+ // preventing the response to component from being
cached
+ if (requestCycle.getResponse() instanceof WebResponse)
+ {
+ WebResponse response =
(WebResponse)requestCycle.getResponse();
+ response.disableCaching();
+ }
}
finally
{