[ 
https://issues.apache.org/struts/browse/WW-1967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43706#action_43706
 ] 

Greg Huber commented on WW-1967:
--------------------------------

Don, Not sure what you mean.

For:

http://172.17.30.43:8080/Events/user/eventEdit!save.action

public class EventEdit extends EventBase {
        public String save() {
        {
}

If I change:

        <action name="eventEdit!*" method="{1}"
                class="test..EventEdit">
            <result name="input" type="tiles">.EventEdit</result>
            <result name="cancel" type="redirect-action">
                <param name="actionName">events</param>
                <param name="parse">true</param>
                        <param name="pgn">${bean.pageNum}</param>
                </result>
                <result name="error" type="chain">events</result>
        </action>

to: (remove the * from !*)

        <action name="eventEdit!" method="{1}"
                class="test.EventEdit">
            <result name="input" type="tiles">.EventEdit</result>
            <result name="cancel" type="redirect-action">
                <param name="actionName">events</param>
                <param name="parse">true</param>
                        <param name="pgn">${bean.pageNum}</param>
                </result>
                <result name="error" type="chain">events</result>
        </action>

I now get this error:
 Struts has detected an unhandled exception:
# Messages:     There is no Action mapped for namespace /user and action name 
eventEdit.

Is there anything else I need to change?  Thought the * was to match any method 
in class EventEdit? 

> 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.

Reply via email to