MethodConfigurationProvider creates ActionConfigs for potential action methods that lack a corresponding action mapping, so that these methods can be invoked without extra or redundant configuration.
As a dynamic method, the behavior of this class could be represented as:
int bang = name.indexOf('!'); if (bang != -1) { String method = name.substring(bang + 1); mapping.setMethod(method); name = name.substring(0, bang); }
If the action URL is "foo!bar", the the "foo" action is invoked, calling "bar" instead of "execute".
Instead of scanning each request at runtime, the provider creates action mappings for each method that could be matched using a dynamic approach. Advantages over a dynamic approach are that:
The "dynamic" methods are not a special case, but just another action mapping, with all the features of a hardcoded mapping. When needed, a manual action can be provided for a method and invoked with the same syntax as an automatic action. The ConfigBrowser can display all potential actions.