Gautham created WW-4336:
---------------------------

             Summary: Action tag does not process list type parameters correctly
                 Key: WW-4336
                 URL: https://issues.apache.org/jira/browse/WW-4336
             Project: Struts 2
          Issue Type: Bug
          Components: Core Actions, Plugin - Tags
    Affects Versions: 2.3.15.3
            Reporter: Gautham



Hello Everyone. 

While migrating application from struts 2.0.11 to 2.3.15.x encountered below 
issue - 
There is a list of objects available in a jsp, within which an action is 
invoked ( using s:action tag ) and that list is passed down for use in the 
callee action (this is being done to populate a table). This approach worked 
with struts 2.0.11, but with 2.3.15 - the list is being converted to string 
first before being passed to the callee action and is unusable by the time its 
received.

With some debugging, figured out this piece of code was doing the conversion to 
string.. 

ActionComponent.createParametersForContext() 

String key = (String) entry.getKey();  
Object val = entry.getValue();  
if (val.getClass().isArray() && String.class == 
val.getClass().getComponentType()) {  
     params.put(key, (String[])val);  
} else {  
     params.put(key, new String[]{val.toString()});  
}  


relevant code snippet in jsp looks like this 

 <s:action name="someAction2" executeResult="true" namespace="/common" >  
    <s:param name="iterable" value="#iter"/>  


Is this an intended change in behavior ? I couldn't find relevant details in 
the release notes or the migration guide.  What's the recommended approach to 
migrate such components ? 




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to