.script files: "index" property of "foreach" tag is stored as a String, not an 
integer
--------------------------------------------------------------------------------------

                 Key: TAPESTRY-1193
                 URL: http://issues.apache.org/jira/browse/TAPESTRY-1193
             Project: Tapestry
          Issue Type: Bug
          Components: Framework
    Affects Versions: 4.0.2
            Reporter: Jim Steinberger
            Priority: Minor


In .script files, the "index" value of the "foreach" tag is stored as a String, 
not an integer.

If you have a two-dimensional array stored in the input-symbol "matrix", the 
following will work fine:
  ${matrix[0].length}

But the following, where "matrixIndex" is the symbol used for a surrounding 
"foreach"-tag's "index" value, will throw an error:
  ${matrix[matrixIndex].length}

The error will tell you that "matrix" does not have the property: 0.
i.e. since matrixIndex is a String, it's looking for a property of the 
array-object named "0".

This issue doesn't arise with comparisons, such as ${matrixIndex > 0}, because 
OGNL knows to interpret matrixIndex as an integer.  However, again, in the case 
of indexes to [ ], both an integer and String parameter are acceptable, so no 
implicit casting is done on the String.

A workaround:  [EMAIL PROTECTED]@parseInt(matrixIndex)].length}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to