Author: ivaynberg
Date: Fri Sep 26 23:42:37 2008
New Revision: 699570

URL: http://svn.apache.org/viewvc?rev=699570&view=rev
Log:
WICKET-1376

Modified:
    
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java

Modified: 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=699570&r1=699569&r2=699570&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
 (original)
+++ 
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
 Fri Sep 26 23:42:37 2008
@@ -367,7 +367,10 @@
                }
                else if (component instanceof Page)
                {
-                       throw new IllegalArgumentException("component cannot be 
a page");
+                       if (component != page)
+                       {
+                               throw new IllegalArgumentException("component 
cannot be a page");
+                       }
                }
                else if (component instanceof AbstractRepeater)
                {
@@ -522,6 +525,17 @@
         */
        public final void respond(final RequestCycle requestCycle)
        {
+               final WebResponse response = 
(WebResponse)requestCycle.getResponse();
+
+               if (markupIdToComponent.values().contains(page))
+               {
+                       // the page itself has been added to the request 
target, we simply issue a redirect back
+                       // to the page
+                       final String url = requestCycle.urlFor(page).toString();
+                       response.redirect(url);
+                       return;
+               }
+
                Iterator it = respondListeners.iterator();
                while (it.hasNext())
                {
@@ -535,7 +549,6 @@
                final String encoding = 
app.getRequestCycleSettings().getResponseRequestEncoding();
 
                // Set content type based on markup type for page
-               final WebResponse response = 
(WebResponse)requestCycle.getResponse();
                response.setCharacterEncoding(encoding);
                response.setContentType("text/xml; charset=" + encoding);
 


Reply via email to