Handle array types in property expressions
------------------------------------------

                 Key: TAP5-1112
                 URL: https://issues.apache.org/jira/browse/TAP5-1112
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.1.0.5
            Reporter: Adam


Passing an array as an argument currently does not work. I saw a TODO in 
PropertyConduitSourceImpl.java regarding this and made a patch.

public class Test
{
  public String[] getArray()
  {
    return new String[4];
  }
  public String useArray(String[] array)
  {
    return "test";
  }
}


<html 
      xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";
      xmlns:p="tapestry:parameter">

    <p>${useArray(array)}</p>

</html>



diff -r 
tapestry5/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
 
tapestry5-mod/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PropertyConduitSourceImpl.java
914,915c914,920
<             // TODO: handle arrays types
<             return InternalUtils.lastTerm(type.getName());
---
>             if (type.isArray())
>             {
>               Class<?> baseType = type.getComponentType();
>               while (baseType.isArray()) baseType = 
> baseType.getComponentType();
>               return InternalUtils.lastTerm(baseType.getName());
>             }
>             else return InternalUtils.lastTerm(type.getName());


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