struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jasper Rosenberg (JIRA)" <>
Subject [jira] [Created] (WW-4482) Conversion annotation ignored for ServletAction parameter
Date Sat, 21 Mar 2015 12:12:38 GMT
Jasper Rosenberg created WW-4482:

             Summary: Conversion annotation ignored for ServletAction parameter
                 Key: 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:

    /** @return the state. */
    @TypeConversion(converter = "com.myco.typeconvertor.RegionTypeConvertor")
    public RegionI getState() {
        return state;

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:
      <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>

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

View raw message