Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1112

Handle array types in property expressions

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.1.0.5
    • 5.2.0
    • tapestry-core
    • None

    Description

      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="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());

      Attachments

        Activity

          People

            igor.drobiazko Igor Drobiazko
            adamm Adam
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: