Author: mgrigorov
Date: Sun Sep 12 09:31:56 2010
New Revision: 996277

URL: http://svn.apache.org/viewvc?rev=996277&view=rev
Log:
WICKET-3032 WebApplication#mountBookmarkablePage with unicode path not works.

Use IRequestCycleSettings#getResponseRequestEncoding() to encode the mount path 
for url coding strategies


Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java?rev=996277&r1=996276&r2=996277&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/request/target/coding/AbstractRequestTargetUrlCodingStrategy.java
 Sun Sep 12 09:31:56 2010
@@ -59,7 +59,8 @@ public abstract class AbstractRequestTar
                {
                        throw new IllegalArgumentException("Mount path cannot 
be null or empty");
                }
-               this.mountPath = mountPath.startsWith("/") ? 
mountPath.substring(1) : mountPath;
+               this.mountPath = initMountPath(mountPath);
+
                if (this.mountPath.startsWith("resources/") || 
this.mountPath.equals("resources"))
                {
                        throw new IllegalArgumentException("Mount path cannot 
be under '/resources'");
@@ -67,6 +68,22 @@ public abstract class AbstractRequestTar
        }
 
        /**
+        * Encodes the meaningful part of <code>mountPath</code> using
+        * 
org.apache.wicket.settings.IRequestCycleSettings.getResponseRequestEncoding() 
or "UTF-8" if
+        * there is no default encoding configured
+        * 
+        * @param mountPath
+        *            the mount path to encode
+        * @return the encoded mount path without the leading '/' if there is 
such
+        */
+       private String initMountPath(final String mountPath)
+       {
+               final String path = mountPath.startsWith("/") ? 
mountPath.substring(1) : mountPath;
+               final String encodedPath = 
WicketURLEncoder.FULL_PATH_INSTANCE.encode(path);
+               return encodedPath;
+       }
+
+       /**
         * @see 
org.apache.wicket.request.target.coding.IMountableRequestTargetUrlCodingStrategy#getMountPath()
         */
        public String getMountPath()


Reply via email to