Incorrect binding of superclass fields when mapping from view (JSP) to Struts 
Actions
-------------------------------------------------------------------------------------

                 Key: WW-2158
                 URL: https://issues.apache.org/struts/browse/WW-2158
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.0.9
            Reporter: Andres Montes


When inherited classes are used as attributes of Struts Actions the binding of 
parameters from view to actions is not working properly. In fact, reflection is 
not able to map attributes from superclass, they are ignored, and mapped as not 
found on the retrieved result. For example:

public abstract class BaseType implements Serializable {

    Long id;

    // getters and setters ...

}

public class TypeA extends BaseType implements Serializable {

    String name;

    // getters and setters ...

}

public class Item implements Serializable {

    String name;
    TypeA itemType;

    // getters and setters ...

}
public class ItemCrudAction extends ActionSupport implements Preparable {

     private Item myItem;

     // getters and setters ...
     // methods to populate data into view ...

public void execute() {

    // Retrieve attribute from View (JSP):
   Item itemFromView = getMyItem(); // --> Here the compiler, through 
reflection, shows the following attributes:
   // name (of type String) -correct-
   // Relationship attribute TypeA with the following attributes:
   //            From superclass BaseType: id (of type String[1] instead of 
Long) - incorrect-
   // I guess this is because it can't find the attribute on the class
   //           From class TypeA: name (of type String) - correct-
}

// item.jsp
// ...
   <s:textfield key="myitem.name" size="50" maxlength="2/>
   // Combobox with values of type TypeA
   // listOfValuesOfTypeA are filled from ItemCrudAction
   <s:select key="myItem.itemType.id" list="listOfValuesOfTypeA" headerKey="-1" 
headerValue="-- Select value --" />


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to