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.