You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by bp...@apache.org on 2008/01/29 01:32:23 UTC

svn commit: r616125 - in /struts/sandbox/trunk/struts2-convention-plugin/src: main/java/org/apache/struts2/convention/ test/java/org/apache/struts2/convention/

Author: bpontarelli
Date: Mon Jan 28 16:32:21 2008
New Revision: 616125

URL: http://svn.apache.org/viewvc?rev=616125&view=rev
Log:
Fixed issue with default param for action redirects and such

Modified:
    struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
    struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
    struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java

Modified: struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java?rev=616125&r1=616124&r2=616125&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java (original)
+++ struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/DefaultResultMapBuilder.java Mon Jan 28 16:32:21 2008
@@ -106,7 +106,7 @@
  * <tr><td>.vm</td><td>velocity</td</tr>
  * <tr><td>.ftl</td><td>freemarker</td</tr>
  * </table>
- * 
+ *
  * @author  Brian Pontarelli
  */
 public class DefaultResultMapBuilder implements ResultMapBuilder {
@@ -364,8 +364,12 @@
             params.putAll(createParameterMap(result.params()));
         }
 
-        if (info.location != null && !params.containsKey("location")) {
-            params.put("location", info.location);
+        // Map the location to the default param for the result or a param named location
+        if (info.location != null) {
+            String defaultParamName = resultTypeConfig.getDefaultResultParam();
+            if (!params.containsKey(defaultParamName)) {
+                params.put(defaultParamName, info.location);
+            }
         }
 
         return new ResultConfig.Builder(info.name, resultTypeConfig.getClassName()).addParams(params).build();

Modified: struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java?rev=616125&r1=616124&r2=616125&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java (original)
+++ struts/sandbox/trunk/struts2-convention-plugin/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Mon Jan 28 16:32:21 2008
@@ -87,6 +87,7 @@
             @Inject("struts.convention.redirect.to.slash") String redirectToSlash,
             @Inject("struts.convention.default.parent.package") String defaultParentPackage) {
 
+        // Validate that the parameters are okay
         this.configuration = configuration;
         this.actionNameBuilder = actionNameBuilder;
         this.resultMapBuilder = resultMapBuilder;

Modified: struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java?rev=616125&r1=616124&r2=616125&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java (original)
+++ struts/sandbox/trunk/struts2-convention-plugin/src/test/java/org/apache/struts2/convention/DefaultResultMapBuilderTest.java Mon Jan 28 16:32:21 2008
@@ -183,7 +183,7 @@
         assertEquals("ann-value", results.get("error").getParams().get("key"));
         assertEquals("ann-value1", results.get("error").getParams().get("key1"));
         assertEquals(1, results.get("input").getParams().size());
-        assertEquals("foo.action", results.get("input").getParams().get("location"));
+        assertEquals("foo.action", results.get("input").getParams().get("actionName"));
         assertEquals("org.apache.struts2.dispatcher.ServletActionRedirectResult", results.get("input").getClassName());
         assertEquals(3, results.get("failure").getParams().size());
         assertEquals("/WEB-INF/location/namespace/action-failure.jsp", results.get("failure").getParams().get("location"));
@@ -243,7 +243,7 @@
         assertEquals("value", results.get("success").getParams().get("key"));
         assertEquals("value1", results.get("success").getParams().get("key1"));
         assertEquals(1, results.get("input").getParams().size());
-        assertEquals("foo.action", results.get("input").getParams().get("location"));
+        assertEquals("foo.action", results.get("input").getParams().get("actionName"));
         assertEquals("org.apache.struts2.dispatcher.ServletActionRedirectResult", results.get("input").getClassName());
         assertEquals(3, results.get("failure").getParams().size());
         assertEquals("/WEB-INF/location/namespace/action-failure.jsp", results.get("failure").getParams().get("location"));
@@ -257,7 +257,8 @@
     public void testClassPath() throws Exception {
         ServletContext context = EasyMock.createNiceMock(ServletContext.class);
 
-        ResultTypeConfig resultType = new ResultTypeConfig.Builder("freemarker", "org.apache.struts2.dispatcher.ServletDispatcherResult").build();
+        ResultTypeConfig resultType = new ResultTypeConfig.Builder("freemarker", "org.apache.struts2.dispatcher.ServletDispatcherResult").
+            defaultResultParam("location").build();
         PackageConfig packageConfig = new PackageConfig.Builder("package").
             defaultResultType("dispatcher").addResultTypeConfig(resultType).build();
 
@@ -280,13 +281,13 @@
 
     private PackageConfig createPackageConfigBuilder(String namespace) {
         ResultTypeConfig resultType = new ResultTypeConfig.Builder("dispatcher", "org.apache.struts2.dispatcher.ServletDispatcherResult").
-            addParam("key", "value").addParam("key1", "value1").build();
+            addParam("key", "value").addParam("key1", "value1").defaultResultParam("location").build();
 
         ResultTypeConfig redirect  = new ResultTypeConfig.Builder("redirectAction",
-            "org.apache.struts2.dispatcher.ServletActionRedirectResult").build();
+            "org.apache.struts2.dispatcher.ServletActionRedirectResult").defaultResultParam("actionName").build();
 
         ResultTypeConfig ftlResultType = new ResultTypeConfig.Builder("freemarker",
-            "org.apache.struts2.views.freemarker.FreemarkerResult").build();
+            "org.apache.struts2.views.freemarker.FreemarkerResult").defaultResultParam("location").build();
 
         return new PackageConfig.Builder("package").
             namespace(namespace).