[ 
https://issues.apache.org/jira/browse/WW-4208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jose L Martinez-Avial closed WW-4208.
-------------------------------------

    Resolution: Fixed

The same effect can be obtained using the already existing functionality. I can 
create the following annotation to validate a field:

@RequiredStringValidator(type = ValidatorType.SIMPLE, fieldName = 
"phoneCountryCode",
                    messageParams={"getText('PhoneCountryCode.label')"},key = 
"validation-error.mandatory")},

And then define the following i18n properties
PhoneCountryCode.label       = Country Code

validation-error.mandatory     = The field {0} is mandatory

And then the generated message will be "The field Country Code is mandatory"

> Allow customization of validation messages by passing arguments to the 
> validator for the message
> ------------------------------------------------------------------------------------------------
>
>                 Key: WW-4208
>                 URL: https://issues.apache.org/jira/browse/WW-4208
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Annotations, XML Validators
>    Affects Versions: 2.3.15.2
>            Reporter: Jose L Martinez-Avial
>              Labels: annotation, validation
>             Fix For: 2.3.17
>
>
> As of today the key/messages used by the annotated validators do not allow to 
> receive custom arguments, since only the parameters defined by the annotation 
> can be used. In order to improve that I suggest to add a parameter keyArgs to 
> the validation annotations so it will be passed to the OGNL evaluator when it 
> evaluates the key provided in the annotation. That way the following would be 
> possible:
> {code}
> @Validations(
>         requiredStrings =
>             {@RequiredStringValidator(type = ValidatorType.SIMPLE,
>                     fieldName = "event.email", key = 
> "validation-error.mandatory")
>                     keyArgs={"email","one","two"}
>         }
> )
> {code}
> Then the key/message could be something like this:
> {code}
> validation-error.mandatory = The field ${getText(keyArgs[0])} is mandatory
> email= E-mail
> {code}
> And the result would be
> {code}
> The field E-mail is mandatory
> {code}
> It would allow to customize the message even further than it allows now. I 
> suppose it would need to be implemented also in xml validations, but I 
> haven't used them, so I don't what would be needed for that. 



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)

Reply via email to