You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by ni...@apache.org on 2007/08/24 11:12:21 UTC
svn commit: r569304 - in /struts/struts2/branches/STRUTS_2_0_X/core/src:
main/java/org/apache/struts2/components/
main/java/org/apache/struts2/portlet/util/
test/java/org/apache/struts2/portlet/util/
Author: nilsga
Date: Fri Aug 24 02:12:20 2007
New Revision: 569304
URL: http://svn.apache.org/viewvc?rev=569304&view=rev
Log:
WW-1713 Backport to 2.0.x
Modified:
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/Form.java
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/Form.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/Form.java?rev=569304&r1=569303&r2=569304&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/Form.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/Form.java Fri Aug 24 02:12:20 2007
@@ -382,7 +382,7 @@
}
}
if (action != null) {
- String result = PortletUrlHelper.buildUrl(action, namespace,
+ String result = PortletUrlHelper.buildUrl(action, namespace, null,
getParameters(), type, portletMode, windowState);
addParameter("action", result);
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java?rev=569304&r1=569303&r2=569304&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/URL.java Fri Aug 24 02:12:20 2007
@@ -250,7 +250,7 @@
String result;
if (value == null && action != null) {
if (Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
- result = PortletUrlHelper.buildUrl(action, namespace, parameters, portletUrlType, portletMode, windowState);
+ result = PortletUrlHelper.buildUrl(action, namespace, method, parameters, portletUrlType, portletMode, windowState);
}
else {
result = determineActionURL(action, namespace, method, req, res, parameters, scheme, includeContext, encode, forceAddSchemeHostAndPort, escapeAmp);
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java?rev=569304&r1=569303&r2=569304&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java Fri Aug 24 02:12:20 2007
@@ -22,8 +22,8 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
-import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.StringTokenizer;
@@ -59,15 +59,16 @@
*
* @param action The action the URL should invoke.
* @param namespace The namespace of the action to invoke.
+ * @param method The method of the action to invoke.
* @param params The parameters of the URL.
* @param type The type of the url, either <tt>action</tt> or <tt>render</tt>
* @param mode The PortletMode of the URL.
* @param state The WindowState of the URL.
* @return The URL String.
*/
- public static String buildUrl(String action, String namespace, Map params,
+ public static String buildUrl(String action, String namespace, String method, Map params,
String type, String mode, String state) {
- return buildUrl(action, namespace, params, null, type, mode, state,
+ return buildUrl(action, namespace, method, params, null, type, mode, state,
true, true);
}
@@ -76,9 +77,10 @@
*
* @see #buildUrl(String, String, Map, String, String, String)
*/
- public static String buildUrl(String action, String namespace, Map params,
+ public static String buildUrl(String action, String namespace, String method, Map params,
String scheme, String type, String portletMode, String windowState,
boolean includeContext, boolean encodeResult) {
+ StringBuffer resultingAction = new StringBuffer();
RenderRequest request = PortletActionContext.getRenderRequest();
RenderResponse response = PortletActionContext.getRenderResponse();
LOG.debug("Creating url. Action = " + action + ", Namespace = "
@@ -102,15 +104,17 @@
}
}
if (TextUtils.stringSet(namespace)) {
- StringBuffer sb = new StringBuffer();
- sb.append(namespace);
+ resultingAction.append(namespace);
if(!action.startsWith("/") && !namespace.endsWith("/")) {
- sb.append("/");
+ resultingAction.append("/");
}
- action = sb.append(action).toString();
+ resultingAction.append(action);
LOG.debug("Resulting actionPath: " + action);
}
- params.put(PortletActionConstants.ACTION_PARAM, new String[] { action });
+ if(TextUtils.stringSet(method)) {
+ resultingAction.append("!").append(method);
+ }
+ params.put(PortletActionConstants.ACTION_PARAM, new String[] { resultingAction.toString() });
PortletURL url = null;
if ("action".equalsIgnoreCase(type)) {
@@ -230,7 +234,7 @@
public static Map ensureParamsAreStringArrays(Map params) {
Map result = null;
if (params != null) {
- result = new HashMap(params.size());
+ result = new LinkedHashMap(params.size());
Iterator it = params.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();
Modified: struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java?rev=569304&r1=569303&r2=569304&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java (original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java Fri Aug 24 02:12:20 2007
@@ -95,7 +95,7 @@
renderRequestControl.replay();
renderResponseControl.replay();
portletUrlControl.replay();
- PortletUrlHelper.buildUrl("testAction", null,
+ PortletUrlHelper.buildUrl("testAction", null, null,
new HashMap(), null, null, null);
portletUrlControl.verify();
renderRequestControl.verify();
@@ -113,7 +113,7 @@
renderRequestControl.replay();
renderResponseControl.replay();
portletUrlControl.replay();
- PortletUrlHelper.buildUrl("testAction", null,
+ PortletUrlHelper.buildUrl("testAction", null, null,
new HashMap(), null, "edit", null);
portletUrlControl.verify();
renderRequestControl.verify();
@@ -131,7 +131,7 @@
renderRequestControl.replay();
renderResponseControl.replay();
portletUrlControl.replay();
- PortletUrlHelper.buildUrl("testAction", null,
+ PortletUrlHelper.buildUrl("testAction", null, null,
new HashMap(), null, null, "maximized");
portletUrlControl.verify();
renderRequestControl.verify();
@@ -149,7 +149,7 @@
renderRequestControl.replay();
renderResponseControl.replay();
portletUrlControl.replay();
- PortletUrlHelper.buildUrl("testAction", null,
+ PortletUrlHelper.buildUrl("testAction", null, null,
new HashMap(), "action", null, null);
portletUrlControl.verify();
renderRequestControl.verify();