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("../");
}