Jasper Rosenberg created WW-4144:
------------------------------------
Summary: Have ObjectFactory buildResult obey ParameterNameAware
restrictions for a Result
Key: WW-4144
URL: https://issues.apache.org/jira/browse/WW-4144
Project: Struts 2
Issue Type: Improvement
Components: Core Actions
Affects Versions: 2.3.15.1
Reporter: Jasper Rosenberg
Priority: Minor
Fix For: 2.3.16
com.opensymphony.xwork2.ObjectFactory#buildResult(ResultConfig, Map), injects
all of the resultConfig parameters into the result after it has been built.
However, I'd like to be able to have my Result implement ParameterNameAware,
and then have buildResult obey its acceptableParameterName() result so I can
filter out what parameters can be injected.
I'm sorry I don't have a proper patch, but it is a very small change. Only
call setProperty on the result if it is not ParameterNameAware, or it is and
the parameter name is acceptable.
{code:java}
if ((!(result instanceof ParameterNameAware)) || (((ParameterNameAware)
result).acceptableParameterName(paramEntry.getKey()))) {
reflectionProvider.setProperty(paramEntry.getKey(), paramEntry.getValue(),
result, extraContext, true);
}
{code}
I have been running a Struts 2 app for 6 years with this change in place. Just
getting around to suggesting it as a patch :)
It does also look like the documentation for ParameterNameAware would need to
be updated to reflect that it can also be used for results, not just actions.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira