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