I have been trying to get validation working with dynamic method invocation, using ActionName-aliasName-validation.xml files.
When the struts.property is set >> struts.enable.DynamicMethodInvocation=true, in the DefaultActionMapper the mapping name is changed by removing !submit from the action eg fieldValidatorsExamples!submit becomes fieldValidatorsExamples. When the validator tries to find FieldValidatorsExampleAction-fieldValidatorsExamples!submit-validator.xml it cannot, as the validator is looking for FieldValidatorsExampleAction-fieldValidatorsExamples-validator.xml. But this is now not linked to a method.
With struts.enable.DynamicMethodInvocation=false, validator works but method name is null.
This line of code is causing the problem mapping.setName(name.substring(0, exclamation));. Without this line seems to work but I am no expert!