You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/03/13 18:32:02 UTC
git commit: Removes direct support for action: prefix
Repository: struts
Updated Branches:
refs/heads/feature/use-js-to-support-multiple-buttons 83bdfcb57 -> 9ffd0417b
Removes direct support for action: prefix
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/9ffd0417
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/9ffd0417
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/9ffd0417
Branch: refs/heads/feature/use-js-to-support-multiple-buttons
Commit: 9ffd0417b660302222e456c6c3684ed95406b4af
Parents: 83bdfcb
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Mar 13 18:31:43 2014 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Mar 13 18:31:43 2014 +0100
----------------------------------------------------------------------
.../org/apache/struts2/StrutsConstants.java | 6 ---
.../dispatcher/mapper/DefaultActionMapper.java | 42 ------------------
.../org/apache/struts2/default.properties | 8 +---
core/src/main/resources/struts-default.xml | 8 ++--
.../mapper/DefaultActionMapperTest.java | 45 ++++++++------------
.../convention/annotation/ResultPath.java | 2 +-
6 files changed, 24 insertions(+), 87 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/core/src/main/java/org/apache/struts2/StrutsConstants.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java b/core/src/main/java/org/apache/struts2/StrutsConstants.java
index 3423ec8..b6ccc3c 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -271,12 +271,6 @@ public final class StrutsConstants {
/** actions names' whitelist **/
public static final String STRUTS_ALLOWED_ACTION_NAMES = "struts.allowed.action.names";
- /** enables action: prefix **/
- public static final String STRUTS_MAPPER_ACTION_PREFIX_ENABLED = "struts.mapper.action.prefix.enabled";
-
- /** enables access to actions in other namespaces than current with action: prefix **/
- public static final String STRUTS_MAPPER_ACTION_PREFIX_CROSSNAMESPACES = "struts.mapper.action.prefix.crossNamespaces";
-
public static final String DEFAULT_TEMPLATE_TYPE_CONFIG_KEY = "struts.ui.templateSuffix";
/** Allows override default DispatcherErrorHandler **/
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index a7a1a69..b3390c1 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -113,15 +113,12 @@ public class DefaultActionMapper implements ActionMapper {
private static final Logger LOG = LoggerFactory.getLogger(DefaultActionMapper.class);
protected static final String METHOD_PREFIX = "method:";
- protected static final String ACTION_PREFIX = "action:";
protected boolean allowDynamicMethodCalls = false;
protected boolean allowSlashesInActionNames = false;
protected boolean alwaysSelectFullNamespace = false;
protected PrefixTrie prefixTrie = null;
protected Pattern allowedActionNames = Pattern.compile("[a-zA-Z0-9._!/\\-]*");
- private boolean allowActionPrefix = false;
- private boolean allowActionCrossNamespaceAccess = false;
protected List<String> extensions = new ArrayList<String>() {{
add("action");
@@ -140,35 +137,6 @@ public class DefaultActionMapper implements ActionMapper {
}
}
});
-
- put(ACTION_PREFIX, new ParameterAction() {
- public void execute(final String key, ActionMapping mapping) {
- if (allowActionPrefix) {
- String name = key.substring(ACTION_PREFIX.length());
- if (allowDynamicMethodCalls) {
- int bang = name.indexOf('!');
- if (bang != -1) {
- String method = name.substring(bang + 1);
- mapping.setMethod(method);
- name = name.substring(0, bang);
- }
- }
- String actionName = cleanupActionName(name);
- if (allowSlashesInActionNames && !allowActionCrossNamespaceAccess) {
- if (actionName.startsWith("/")) {
- actionName = actionName.substring(1);
- }
- }
- if (!allowSlashesInActionNames && !allowActionCrossNamespaceAccess) {
- if (actionName.lastIndexOf("/") != -1) {
- actionName = actionName.substring(actionName.lastIndexOf("/") + 1);
- }
- }
- mapping.setName(actionName);
- }
- }
- });
-
}
};
}
@@ -204,16 +172,6 @@ public class DefaultActionMapper implements ActionMapper {
this.allowedActionNames = Pattern.compile(allowedActionNames);
}
- @Inject(value = StrutsConstants.STRUTS_MAPPER_ACTION_PREFIX_ENABLED)
- public void setAllowActionPrefix(String allowActionPrefix) {
- this.allowActionPrefix = "true".equalsIgnoreCase(allowActionPrefix);
- }
-
- @Inject(value = StrutsConstants.STRUTS_MAPPER_ACTION_PREFIX_CROSSNAMESPACES)
- public void setAllowActionCrossNamespaceAccess(String allowActionCrossNamespaceAccess) {
- this.allowActionCrossNamespaceAccess = "true".equalsIgnoreCase(allowActionCrossNamespaceAccess);
- }
-
@Inject
public void setContainer(Container container) {
this.container = container;
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/core/src/main/resources/org/apache/struts2/default.properties
----------------------------------------------------------------------
diff --git a/core/src/main/resources/org/apache/struts2/default.properties b/core/src/main/resources/org/apache/struts2/default.properties
index ea3bc0c..dff1b88 100644
--- a/core/src/main/resources/org/apache/struts2/default.properties
+++ b/core/src/main/resources/org/apache/struts2/default.properties
@@ -97,7 +97,7 @@ struts.serve.static.browserCache=true
### Set this to false if you wish to disable implicit dynamic method invocation
### via the URL request. This includes URLs like foo!bar.action, as well as params
-### like method:bar (but not action:foo).
+### like method:bar.
### An alternative to implicit dynamic method invocation is to use wildcard
### mappings, such as <action name="*/*" method="{2}" class="actions.{1}">
struts.enable.DynamicMethodInvocation = false
@@ -111,12 +111,6 @@ struts.enable.DynamicMethodInvocation = false
### "/foo/save".
struts.enable.SlashesInActionNames = false
-### Disables support for action: prefix
-struts.mapper.action.prefix.enabled = false
-
-### Blocks access to actions in other namespace than current with action: prefix
-struts.mapper.action.prefix.crossNamespaces = false
-
### use alternative syntax that requires %{} in most places
### to evaluate expressions for String attributes for tags
struts.tag.altSyntax=true
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/core/src/main/resources/struts-default.xml
----------------------------------------------------------------------
diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml
index a99a945..d8c162b 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -201,7 +201,7 @@
<interceptor-ref name="multiselect"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params">
- <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
+ <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="deprecation"/>
@@ -257,7 +257,7 @@
<interceptor-ref name="checkbox"/>
<interceptor-ref name="multiselect"/>
<interceptor-ref name="params">
- <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
+ <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="prepare"/>
@@ -267,7 +267,7 @@
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params">
- <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
+ <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
@@ -304,7 +304,7 @@
<interceptor-ref name="staticParams"/>
<interceptor-ref name="actionMappingParams"/>
<interceptor-ref name="params">
- <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
+ <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^method:.*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java b/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
index 33ff6e9..46561b8 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
@@ -401,7 +401,7 @@ public class DefaultActionMapperTest extends StrutsInternalTestCase {
public void testActionPrefixWhenDisabled() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction", "");
+ parameterMap.put("action:myAction", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
@@ -415,115 +415,106 @@ public class DefaultActionMapperTest extends StrutsInternalTestCase {
public void testActionPrefixWhenEnabled() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction", "");
+ parameterMap.put("action:myAction", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("myAction", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefixWhenSlashesAndCrossNamespaceDisabled() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "my/Action", "");
+ parameterMap.put("action:my/Action", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
defaultActionMapper.setSlashesInActionNames("true");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("my/Action", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefixWhenSlashesButSlashesDisabledAndCrossNamespaceDisabled() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "my/Action", "");
+ parameterMap.put("action:my/Action", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
defaultActionMapper.setSlashesInActionNames("false");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("Action", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefixWhenSlashesButSlashesDisabledAndCrossNamespace() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "my/Action", "");
+ parameterMap.put("action:my/Action", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
- defaultActionMapper.setAllowActionCrossNamespaceAccess("true");
defaultActionMapper.setSlashesInActionNames("false");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("my/Action", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefixWhenCrossNamespace() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "/my/Action", "");
+ parameterMap.put("action:/my/Action", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
- defaultActionMapper.setAllowActionCrossNamespaceAccess("true");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("/my/Action", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefix_fromImageButton() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction", "");
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction.x", "");
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction.y", "");
+ parameterMap.put("action:myAction", "");
+ parameterMap.put("action:myAction.x", "");
+ parameterMap.put("action:myAction.y", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("myAction", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testActionPrefix_fromIEImageButton() throws Exception {
Map parameterMap = new HashMap();
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction.x", "");
- parameterMap.put(DefaultActionMapper.ACTION_PREFIX + "myAction.y", "");
+ parameterMap.put("action:myAction.x", "");
+ parameterMap.put("action:myAction.y", "");
StrutsMockHttpServletRequest request = new StrutsMockHttpServletRequest();
request.setParameterMap(parameterMap);
request.setupGetServletPath("/someServletPath.action");
DefaultActionMapper defaultActionMapper = new DefaultActionMapper();
- defaultActionMapper.setAllowActionPrefix("true");
ActionMapping actionMapping = defaultActionMapper.getMapping(request, configManager);
- assertEquals("myAction", actionMapping.getName());
+ assertEquals("someServletPath", actionMapping.getName());
}
public void testRedirectPrefix() throws Exception {
http://git-wip-us.apache.org/repos/asf/struts/blob/9ffd0417/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
----------------------------------------------------------------------
diff --git a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
index 320fdc7..46b3a04 100644
--- a/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
+++ b/plugins/convention/src/main/java/org/apache/struts2/convention/annotation/ResultPath.java
@@ -38,7 +38,7 @@ import java.lang.annotation.Target;
* is a JSP or some type of template (Velocity for example). In order to
* figure out which results are associated with an action, this class can be
* used to set the base directory that the Convention plugin looks at when
- * trying to figure out the correct results. For example, if there is an action:
+ * trying to figure out the correct results.
* </p>
*
* <pre>