[ https://issues.apache.org/struts/browse/WW-1967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43693#action_43693 ]
Don Brown commented on WW-1967: ------------------------------- Well, first of all, if you are using dynamic method invocation, you don't need wildcards in that way in the action mapping. Try taking those out and see if you still are having difficulties. > Dynamic Method Invocation, validator with ActionName-aliasName-validation.xml > files. > ------------------------------------------------------------------------------------ > > Key: WW-1967 > URL: https://issues.apache.org/struts/browse/WW-1967 > Project: Struts 2 > Issue Type: Bug > Components: Core Actions > Affects Versions: 2.0.6 > Environment: Fedora 4, tomcat > Reporter: Greg Huber > Priority: Minor > Fix For: Future > > > Hello, > 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. > if (allowDynamicMethodCalls) { > // handle "name!method" convention. > String name = mapping.getName(); > int exclamation = name.lastIndexOf("!"); > if (exclamation != -1) { > mapping.setName(name.substring(0, exclamation)); > mapping.setMethod(name.substring(exclamation + 1)); > } > } > 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! > eg: > <action name="fieldValidatorsExamples!*" > class="org.apache.struts2.showcase.validation.FieldValidatorsExampleAction" > method="{1}" > > <result name="input" > type="dispatcher">/validation/fieldValidatorsExample.jsp</result> > <result > type="dispatcher">/validation/successFieldValidatorsExample.jsp</result> > </action> > <s:form action="fieldValidatorsExamples!submit" namespace="/validation" > method="POST" theme="xhtml"> > <s:textfield label="Required Validator Field" > name="requiredValidatorField" /> > <s:textfield label="Required String Validator Field" > name="requiredStringValidatorField" /> > <s:textfield label="Integer Validator Field" > name="integerValidatorField" /> > <s:textfield label="Date Validator Field" > name="dateValidatorField" /> > <s:textfield label="Email Validator Field" > name="emailValidatorField" /> > <s:textfield label="URL Validator Field" name="urlValidatorField" > /> > <s:textfield label="String Length Validator Field" > name="stringLengthValidatorField" /> > <s:textfield label="Regex Validator Field" > name="regexValidatorField"/> > <s:textfield label="Field Expression Validator Field" > name="fieldExpressionValidatorField" /> > <s:submit label="Submit" /> > </s:form> > Cheers Greg -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.