You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by he...@apache.org on 2008/06/13 10:33:23 UTC
svn commit: r667420 - in /struts/struts2/trunk: assembly/pom.xml core/pom.xml
core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java
Author: hermanns
Date: Fri Jun 13 01:33:23 2008
New Revision: 667420
URL: http://svn.apache.org/viewvc?rev=667420&view=rev
Log:
WW-2660 Patches for WW-2203 prevented action parameters from other places than the request parameters from being included in ParameterAware map.
o applied patches by Dale Newfield to S2 and XW
o updated xwork dep to 2.1.2-SNAPSHOT
Modified:
struts/struts2/trunk/assembly/pom.xml
struts/struts2/trunk/core/pom.xml
struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java
Modified: struts/struts2/trunk/assembly/pom.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/assembly/pom.xml?rev=667420&r1=667419&r2=667420&view=diff
==============================================================================
--- struts/struts2/trunk/assembly/pom.xml (original)
+++ struts/struts2/trunk/assembly/pom.xml Fri Jun 13 01:33:23 2008
@@ -109,7 +109,7 @@
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
<classifier>javadoc</classifier>
- <version>2.1.1</version>
+ <version>2.1.2-SNAPSHOT</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/xwork-apidocs</outputDirectory>
@@ -286,7 +286,7 @@
<dependency>
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
- <version>2.1.1</version>
+ <version>2.1.2-SNAPSHOT</version>
<type>jar</type>
<classifier>jdk14</classifier>
<scope>runtime</scope>
Modified: struts/struts2/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/pom.xml?rev=667420&r1=667419&r2=667420&view=diff
==============================================================================
--- struts/struts2/trunk/core/pom.xml (original)
+++ struts/struts2/trunk/core/pom.xml Fri Jun 13 01:33:23 2008
@@ -56,7 +56,7 @@
<artifactItem>
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
- <version>2.1.1</version>
+ <version>2.1.2-SNAPSHOT</version>
<classifier>sources</classifier>
</artifactItem>
</artifactItems>
@@ -229,7 +229,7 @@
<dependency>
<groupId>com.opensymphony</groupId>
<artifactId>xwork</artifactId>
- <version>2.1.1</version>
+ <version>2.1.2-SNAPSHOT</version>
</dependency>
<!--<dependency>-->
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java?rev=667420&r1=667419&r2=667420&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/ActionMappingParametersInteceptor.java Fri Jun 13 01:33:23 2008
@@ -26,6 +26,7 @@
import java.util.Map;
import java.util.Collections;
+import java.util.TreeMap;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.mapper.ActionMapping;
@@ -36,31 +37,31 @@
* exactly like {@link ParametersInterceptor}, only the parameters come from the {@link ActionMapping}, not the
* {@link ActionContext#getParameters()} method.
* <!-- END SNIPPET: description -->
- *
+ * <p/>
* <p/> <u>Interceptor parameters:</u>
- *
+ * <p/>
* <!-- START SNIPPET: parameters -->
- *
+ * <p/>
* <ul>
- *
+ * <p/>
* <li>ordered - set to true if you want the top-down property setter behaviour</li>
- *
+ * <p/>
* </ul>
- *
+ * <p/>
* <!-- END SNIPPET: parameters -->
- *
+ * <p/>
* <p/> <u>Extending the interceptor:</u>
- *
+ * <p/>
* <!-- START SNIPPET: extending -->
- *
+ * <p/>
* <p/> The best way to add behavior to this interceptor is to utilize the {@link com.opensymphony.xwork2.interceptor.ParameterNameAware} interface in your
* actions. However, if you wish to apply a global rule that isn't implemented in your action, then you could extend
* this interceptor and override the {@link #acceptableName(String)} method.
- *
+ * <p/>
* <!-- END SNIPPET: extending -->
- *
+ * <p/>
* <p/> <u>Example code:</u>
- *
+ * <p/>
* <pre>
* <!-- START SNIPPET: example -->
* <action name="someAction" class="com.examples.SomeAction">
@@ -75,9 +76,9 @@
/**
* @param ac The action context
* @return the parameters from the action mapping in the context. If none found, returns
- * an empty map.
+ * an empty map.
*/
- protected Map retrieveParametersFromContext(ActionContext ac) {
+ protected Map retrieveParameters(ActionContext ac) {
ActionMapping mapping = (ActionMapping) ac.get(ServletActionContext.ACTION_MAPPING);
if (mapping != null) {
return mapping.getParams();
@@ -85,4 +86,26 @@
return Collections.EMPTY_MAP;
}
}
+
+ /**
+ * Adds the parameters into context's ParameterMap
+ *
+ * @param ac The action context
+ * @param newParams The parameter map to apply
+ * <p/>
+ * In this class this is a no-op, since the parameters were fetched from the same location.
+ * In subclasses both retrieveParameters() and addParametersToContext() should be overridden.
+ */
+ protected void addParametersToContext(ActionContext ac, Map newParams) {
+ Map previousParams = ac.getParameters();
+ Map combinedParams = null;
+ if (previousParams != null) {
+ combinedParams = new TreeMap(previousParams);
+ } else {
+ combinedParams = new TreeMap();
+ }
+ combinedParams.putAll(newParams);
+
+ ac.setParameters(combinedParams);
+ }
}