You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Niall Pemberton (JIRA)" <ji...@apache.org> on 2006/11/27 05:30:57 UTC

[jira] Resolved: (STR-2971) one of validator.Resources.getActionMessage method does not respect message's "bundle" attribute

     [ http://issues.apache.org/struts/browse/STR-2971?page=all ]

Niall Pemberton resolved STR-2971.
----------------------------------

    Fix Version/s: 1.3.6
       Resolution: Fixed
         Assignee: Niall Pemberton

> one of validator.Resources.getActionMessage method does not respect message's "bundle" attribute
> ------------------------------------------------------------------------------------------------
>
>                 Key: STR-2971
>                 URL: http://issues.apache.org/struts/browse/STR-2971
>             Project: Struts 1
>          Issue Type: Bug
>    Affects Versions: 1.2.9
>         Environment: Struts 1.2.9, commons-validator 1.1.4
>            Reporter: Christopher Schultz
>         Assigned To: Niall Pemberton
>            Priority: Minor
>             Fix For: 1.3.6
>
>
> I have a custom validator that uses the currently-loged-in user's date format preferences to validate date input. I use the following code to return error messages when there is a problem:
>     if(error)
>     {
> 	    errors.add(field.getKey(),
> 		       Resources.getActionMessage(request, va, field));
> 	    return Boolean.FALSE;
>     }
> The variables 'field' (commons.validator.Field), 'request', (HttpServletRequest) and 'va' (commons.validator.ValidatorAction) are all passed-in as parameters to this method, similar to other validateFoo(...) methods/classes.
> I recently separated my application resources (strings) into separate files based upon user role, to help manage the avalance of strings I had to deal with. I added a "bundle" attribute to my <msg> elements in my validation configuration file. This works for all of the stock validators, but not mine. I checked to see what the difference was between my code and the validators defined in struts.validator.FieldChecks, and they use this:
>             errors.add(field.getKey(),
>                        Resources.getActionMessage(validator, request, va, field));
> Note the addition of that first parameter. I checked the code for these two different methods in the Resources class, and it appears that the latter will use the bundle attribute and get the appropriate message resource.
> I'm happy to change my code to use this other method -- it's no sweat to make that change. But I was suprised to see that this particular variety of the getActionMessage method did not respect the bundle setting, and also did not document that behavior.
> The "working" method uses the ValidatorAction parameter (missing in the method in question) to get the ServletContext where the MessageResources objects can be located. Since the HttpServletRequest is available in the "non-working" method, I believe this can still be achieved.
> Perhaps this "non-working" method should be deprecated in favor of the second method? Or, is there some historical reason why it needs to exist, and exhibit this behavior?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira