struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Huber (JIRA)" <j...@apache.org>
Subject [jira] Created: (WW-1967) Dynamic Method Invocation, validator with ActionName-aliasName-validation.xml files.
Date Tue, 05 Jun 2007 12:14:27 GMT
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: Actions
    Affects Versions: 2.0.6
         Environment: Fedora 4, tomcat
            Reporter: Greg Huber
            Priority: Minor


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.


Mime
View raw message