Jasper Rosenberg created WW-4482:
------------------------------------
Summary: Conversion annotation ignored for ServletAction parameter
Key: WW-4482
URL: https://issues.apache.org/jira/browse/WW-4482
Project: Struts 2
Issue Type: Bug
Components: Expression Language, Value Stack
Affects Versions: 2.3.20
Reporter: Jasper Rosenberg
Priority: Critical
This definitely worked before 2.3.20, but unfortunately I haven’t been able to
track down the actual source of the bug introduced for 2.3.20. My best guess
is that it was introduced when the code was refactored to support Collections.
Basically I have an Action, with a setter and getter for state that uses a
custom type convertor like so:
{code:java}
/** @return the state. */
@TypeConversion(converter = "com.myco.typeconvertor.RegionTypeConvertor")
public RegionI getState() {
return state;
}
{code}
When I submit the action, this type convertor is correctly used to turn the
“state” post parameter into a RegionI object which is injected into the Action.
So far so good.
However, the result looks like:
{code:xml}
<result name="selfSignupFlow" type="redirectAction">
<param name="actionName">confirmAccount</param>
<param name="streetAddress">${streetAddress}</param>
<param name="city">${city}</param>
<param name="state">${state}</param>
<param name="postalCode">${postalCode}</param>
...
</result>
{code}
And in the latest release, when it evaluates $\{state} it uses the default type
convertor (in this case for an enum because the concrete class is a USState
enum), rather than the com.myco.typeconvertor.RegionTypeConvertor specified on
both the getter and setter for state in the action.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)