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).