From 37527a7d8a805e6c19f594fdfcf072d38677ab2e Mon Sep 17 00:00:00 2001 From: Ted Nathan Husted Date: Tue, 29 Aug 2006 21:27:56 +0000 Subject: [PATCH] WW-1353 Enable use of action: prefix when DMI is disabled. git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@438223 13f79535-47bb-0310-9956-ffa450edef68 --- .../mapper/DefaultActionMapper.java | 19 +++++++++---------- .../org/apache/struts2/default.properties | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) 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 ffa09f1f8..7519bba55 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 @@ -164,17 +164,18 @@ public class DefaultActionMapper implements ActionMapper { put(ACTION_PREFIX, new ParameterAction() { public void execute(String key, ActionMapping mapping) { String name = key.substring(ACTION_PREFIX.length()); - int bang = name.indexOf('!'); - if (bang != -1) { - String method = name.substring(bang + 1); - mapping.setMethod(method); - name = name.substring(0, bang); + if (allowDynamicMethodCalls) { + int bang = name.indexOf('!'); + if (bang != -1) { + String method = name.substring(bang + 1); + mapping.setMethod(method); + name = name.substring(0, bang); + } } - mapping.setName(name); } }); - + put(REDIRECT_PREFIX, new ParameterAction() { public void execute(String key, ActionMapping mapping) { ServletRedirectResult redirect = new ServletRedirectResult(); @@ -208,9 +209,7 @@ public class DefaultActionMapper implements ActionMapper { parseNameAndNamespace(uri, mapping, config); - if (allowDynamicMethodCalls) { - handleSpecialParameters(request, mapping); - } + handleSpecialParameters(request, mapping); if (mapping.getName() == null) { return null; diff --git a/core/src/main/resources/org/apache/struts2/default.properties b/core/src/main/resources/org/apache/struts2/default.properties index 3650e05a5..99b692284 100644 --- a/core/src/main/resources/org/apache/struts2/default.properties +++ b/core/src/main/resources/org/apache/struts2/default.properties @@ -73,7 +73,7 @@ struts.serve.static.browserCache=true ### Set this to false if you wish to disable all forms of dynamic method invocation ### via the URL request. This includes URLs like foo!bar.action, as well as params -### like method:bar. See the DefaultActionMapper for more info. +### like method:bar (but not action:foo). See the DefaultActionMapper for more info. struts.enable.DynamicMethodInvocation = true ### use alternative syntax that requires %{} in most places