You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by at...@apache.org on 2007/06/14 18:28:38 UTC
svn commit: r547294 -
/incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
Author: ate
Date: Thu Jun 14 09:28:37 2007
New Revision: 547294
URL: http://svn.apache.org/viewvc?view=rev&rev=547294
Log:
WICKET-654: New Wicket Portlet support: translating Wicket relative paths back to fully qualified paths for usage in a portlet context
See: https://issues.apache.org/jira/browse/WICKET-654
- note: initial implementation, probably needs further improvement
Modified:
incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
Modified: incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java?view=diff&rev=547294&r1=547293&r2=547294
==============================================================================
--- incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java (original)
+++ incubator/wicket/branches/wicket-1.3-portlet-support/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/ServletWebRequest.java Thu Jun 14 09:28:37 2007
@@ -24,6 +24,7 @@
import org.apache.wicket.Application;
import org.apache.wicket.IRedirectListener;
+import org.apache.wicket.RenderContext;
import org.apache.wicket.RequestListenerInterface;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.protocol.http.WebApplication;
@@ -149,10 +150,23 @@
return relativePathPrefixToContextRoot;
}
+ if (RenderContext.get().isEmbedded())
+ {
+ return relativePathPrefixToContextRoot = getHttpServletRequest().getContextPath()+"/";
+ }
+
// Prepend to get back to the wicket handler.
String tmp = getRelativePathPrefixToWicketHandler();
- PrependingStringBuffer prepender = new PrependingStringBuffer(tmp);
-
+
+ boolean embeddedRequest = RenderContext.get().isEmbedded();
+
+ PrependingStringBuffer prepender = new PrependingStringBuffer();
+
+ if (!embeddedRequest)
+ {
+ prepender.prepend(tmp);
+ }
+
String path = Strings.replaceAll(getPath(), "%3A", ":").toString();
if (path == null || path.length() == 0)
{
@@ -218,10 +232,12 @@
}
PrependingStringBuffer prepender = new PrependingStringBuffer();
+
+ boolean embeddedRequest = RenderContext.get().isEmbedded();
// For AJAX requests, we need to make the URLs relative to the
// original page.
- if (isAjax())
+ if (!embeddedRequest && isAjax())
{
for (int i = 0; i < getRequestParameters().getUrlDepth(); i++)
{
@@ -289,28 +305,42 @@
relativeUrl = wicketRedirectUrl;
}
+ int lastPathPos = -1;
if (depthRelativeToWicketHandler == -1)
{
int depth = 0;
+ int ajaxUrlDepth = isAjax() ? getRequestParameters().getUrlDepth() : -1;
for (int i = 0; i < relativeUrl.length(); i++)
{
if (relativeUrl.charAt(i) == '?')
- {
+ {
break;
}
if (relativeUrl.charAt(i) == '/')
{
depth++;
+ lastPathPos = i;
+ if (depth == ajaxUrlDepth)
+ {
+ return relativeUrl.substring(0,lastPathPos+1);
+ }
}
}
depthRelativeToWicketHandler = depth;
}
-
- for (int i = 0; i < depthRelativeToWicketHandler; i++)
+
+ if (embeddedRequest)
{
- prepender.prepend("../");
+ prepender.prepend(getHttpServletRequest().getServletPath());
+ prepender.prepend(getHttpServletRequest().getContextPath());
+ }
+ else
+ {
+ for (int i = 0; i < depthRelativeToWicketHandler; i++)
+ {
+ prepender.prepend("../");
+ }
}
-
return relativePathPrefixToWicketHandler = prepender.toString();
}