[
https://issues.apache.org/struts/browse/STR-2971?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paul Benedict updated STR-2971:
-------------------------------
Component/s: Core
> one of validator.Resources.getActionMessage method does not respect message's
> "bundle" attribute
> ------------------------------------------------------------------------------------------------
>
> Key: STR-2971
> URL: https://issues.apache.org/struts/browse/STR-2971
> Project: Struts 1
> Issue Type: Bug
> Components: Core
> Affects Versions: 1.2.9
> Environment: Struts 1.2.9, commons-validator 1.1.4
> Reporter: Christopher Schultz
> Assignee: 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.
-
You can reply to this email to add a comment to the issue online.