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)

Reply via email to