diff --git a/action/src/main/java/org/apache/struts/action2/components/URL.java b/action/src/main/java/org/apache/struts/action2/components/URL.java index 4dab5997b..b3b7df1af 100644 --- a/action/src/main/java/org/apache/struts/action2/components/URL.java +++ b/action/src/main/java/org/apache/struts/action2/components/URL.java @@ -148,7 +148,8 @@ public class URL extends Component { // no explicit url set so attach params from current url, do // this at start so body params can override any of these they wish. try { - String includeParams = null; + // ww-1266 + String includeParams = GET; if (this.includeParams != null) { includeParams = findString(this.includeParams); diff --git a/action/src/test/java/org/apache/struts/action2/views/jsp/URLTagTest.java b/action/src/test/java/org/apache/struts/action2/views/jsp/URLTagTest.java index f75e89b2f..d5daae2a0 100644 --- a/action/src/test/java/org/apache/struts/action2/views/jsp/URLTagTest.java +++ b/action/src/test/java/org/apache/struts/action2/views/jsp/URLTagTest.java @@ -17,8 +17,17 @@ */ package org.apache.struts.action2.views.jsp; +import java.util.HashMap; +import java.util.Map; + import javax.servlet.jsp.JspWriter; +import org.apache.struts.action2.components.URL; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; + +import com.opensymphony.xwork.util.OgnlValueStack; + /** * Unit test for {@link URLTag}. * @@ -27,6 +36,31 @@ public class URLTagTest extends AbstractUITagTest { private URLTag tag; + public void testIncludeParamsDefaultToGET() throws Exception { + request.setQueryString("one=oneVal&two=twoVal&three=threeVal"); + + // request parameter map should not have any effect, as includeParams + // default to GET, which get its param from request.getQueryString() + Map tmp = new HashMap(); + tmp.put("one", "aaa"); + tmp.put("two", "bbb"); + tmp.put("three", "ccc"); + request.setParameterMap(tmp); + + tag.setValue("TestAction.acton"); + + tag.doStartTag(); + + URL url = (URL) tag.getComponent(); + Map parameters = url.getParameters(); + + tag.doEndTag(); + + assertEquals(parameters.get("one"), "oneVal"); + assertEquals(parameters.get("two"), "twoVal"); + assertEquals(parameters.get("three"), "threeVal"); + } + public void testActionURL() throws Exception { tag.setValue("TestAction.action");