Author: jogep
Date: Sun May 22 17:15:55 2011
New Revision: 1126101
URL: http://svn.apache.org/viewvc?rev=1126101&view=rev
Log:
WW-3628 : Regression in s:url tag action's method is no longer being included
in the resultant url
Patch by Jason Pyeron
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ActionProxy.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockActionProxy.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java?rev=1126101&r1=1126100&r2=1126101&view=diff
==
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java
Sun May 22 17:15:55 2011
@@ -77,7 +77,8 @@ public class ServletUrlRenderer implemen
final String action = ai.getProxy().getActionName();
final String namespace = ai.getProxy().getNamespace();
- result = urlComponent.determineActionURL(action,
namespace, urlComponent.getMethod(),urlComponent.getHttpServletRequest(),
urlComponent.getHttpServletResponse(), urlComponent.getParameters(), scheme,
urlComponent.isIncludeContext(), urlComponent.isEncode(),
urlComponent.isForceAddSchemeHostAndPort(), urlComponent.isEscapeAmp());
+ final String method = urlComponent.getMethod() != null
|| !ai.getProxy().isMethodSpecified() ? urlComponent.getMethod() :
ai.getProxy().getMethod();
+ result = urlComponent.determineActionURL(action,
namespace, method, urlComponent.getHttpServletRequest(),
urlComponent.getHttpServletResponse(), urlComponent.getParameters(), scheme,
urlComponent.isIncludeContext(), urlComponent.isEncode(),
urlComponent.isForceAddSchemeHostAndPort(), urlComponent.isEscapeAmp());
} else {
String _value = urlComponent.getValue();
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ActionProxy.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ActionProxy.java?rev=1126101&r1=1126100&r2=1126101&view=diff
==
---
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ActionProxy.java
(original)
+++
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/ActionProxy.java
Sun May 22 17:15:55 2011
@@ -92,5 +92,12 @@ public interface ActionProxy {
* @return the method to execute
*/
String getMethod();
+
+/**
+ * Gets status of the method value's initialization.
+ *
+ * @return true if the method returned by getMethod() is not a default
initializer value.
+ */
+boolean isMethodSpecified();
}
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java?rev=1126101&r1=1126100&r2=1126101&view=diff
==
---
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
(original)
+++
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/DefaultActionProxy.java
Sun May 22 17:15:55 2011
@@ -60,6 +60,8 @@ public class DefaultActionProxy implemen
protected ActionEventListener actionEventListener;
+private boolean methodSpecified=true;
+
/**
* This constructor is private so the builder methods (create*) should be
used to create an DefaultActionProxy.
*
@@ -162,6 +164,7 @@ public class DefaultActionProxy implemen
if (StringUtils.isEmpty(this.method)) {
this.method = "execute";
}
+methodSpecified=false;
}
}
@@ -201,4 +204,10 @@ public class DefaultActionProxy implemen
UtilTimerStack.pop(profileKey);
}
}
+
+@Override
+public boolean isMethodSpecified()
+{
+return methodSpecified;
+}
}
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockActionProxy.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/mock/MockActionProxy.java?rev=1126101&r1=1126100&r2=1126101&view=diff
===