You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/05/22 15:35:15 UTC
svn commit: r540579 -
/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
Author: almaw
Date: Tue May 22 06:35:15 2007
New Revision: 540579
URL: http://svn.apache.org/viewvc?view=rev&rev=540579
Log:
WICKET-567 - relative paths generated incorrectly for HeaderContributor for mounted page
Modified:
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?view=diff&rev=540579&r1=540578&r2=540579
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java Tue May 22 06:35:15 2007
@@ -148,21 +148,35 @@
{
return relativePathPrefixToContextRoot;
}
+
+ // Prepend to get back to the wicket handler.
String tmp = getRelativePathPrefixToWicketHandler();
- String servletPath = getServletPath();
- if (servletPath == null || servletPath.length() == 0)
+ PrependingStringBuffer prepender = new PrependingStringBuffer(tmp);
+
+ String path = getPath();
+ if (path == null || path.length() == 0)
{
- return tmp;
+ path = "";
}
-
- PrependingStringBuffer prepender = new PrependingStringBuffer(tmp);
- for (int i = 1; i < servletPath.length(); i++)
+
+ // Now prepend to get back from the wicket handler to the root context.
+
+ // Find the absolute path for the wicket filter/servlet
+ String wicketPath = "";
+
+ // We're running as a filter.
+ String servletPath = getServletPath();
+ if (servletPath.endsWith(path)) {
+ wicketPath = servletPath.substring(0, servletPath.length() - path.length() - 1);
+ }
+ // We're running as a servlet
+ else {
+ wicketPath = servletPath;
+ }
+
+ for (int i = 0; i < wicketPath.length(); i++)
{
- if (servletPath.charAt(i) == '?')
- {
- break;
- }
- if (servletPath.charAt(i) == '/')
+ if (wicketPath.charAt(i) == '/')
{
prepender.prepend("../");
}