You said:
When rendering the AJAX response, Tapestry tries to evaluate an
expression on 'child' (*), but 'child' is null.Why does Tapestry need
the value of 'child'? How is it supposed to know?
The stack trace says the problem is elsewhere:
[ERROR] batch.ViewBatch Render queue error in
BeginRender[batch/View:executabletable.executablerowpair.zone]: Failure
reading parameter 'id' of component
batch/View:executabletable.executablerowpair.zone: Property 'executable'
(within property expression 'executable.id', of
ch.sukha.testmachine.components.ExecutableRowPair@2b44cce) is null. (...)
/ExecutableRowPair.tml, line 17.
I don't know what exactly is in ExecutableRowPair line 17, but, anyway,
what happens here very much probably is that during the AJAX render the
executable property you're passing to an ExecutableRowPair parameter is
null.
Here's your code:
<t:loop source="executable.children" value="child"> <!-- * -->
<t:ExecutableRowPair executable="child" .../>
</t:loop>
You said:
Why does Tapestry need the value of 'child'?
Quite obviously, you're passing it as a parameter to a component, so the
component needs the value of 'child'. ;)
How is it supposed to know?
You're supposed to provide it.
Don't forget that, when a Zone is rendered though AJAX, just its contents
are rendered again, so the Loop isn't executed and the child property is
null. The most probable solution to your problem is to pass the child
parameter value as the context parameter of your toggleEvent link.
--
Thiago H. de Paula Figueiredo
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org