Andrew, I don't use any template. Never used one, actually I rely heavily on composition components (many placeholders, one page). Maybe a trivial workaround for this issue is to have a row getter returning the row index, since #{row} is evaluated properly within the inner component.

-- Renzo

Andrew Robinson wrote:
Try using ui:decorate instead of a user source tag to see if it is a
problem with the UserTagHandler facelets class. Also simplify you
template so that you eliminate other possible problems (also try
swapping ui:component out with ui:composition to see if that has an
effect):

<tr:table varStatus="statux" ...
  <tr:column>
    <ui:decorate template="/facelets/valueHolder.xhtml">
      <ui:param name="idBase" value="foo:#{statux.index}" />
      <ui:param name="rowIndex" value="#{statux.index}" />
    </ui:decorate>
  </tr:column>
</tr:table>

/facelets/valueHolder.xhtml:

<ui:composition>
  Raw value: #{rowIndex} <br/>
  Component EL value: <h:outputText value="#{rowIndex}" /> <br/>
  In onclick: <tr:commandLink onclick="Click( 'foo:#{statux.index}');"
.../> <br/>
</ui:composition>

They may look the same, but they are treated by facelets slightly
differently so it may be worth trying the different permutations. As
always with debugging, try to remove all unnecessary code and try to
see if you can break or succeed with very simple code.

Try using h:dataTable and h:commandLink to eliminate Trinidad as a
potential problem (you can also try t:dataList or ui:repeat to test
varStatus implementations in other libraries).

After these tests, try the facelets mailing list to see if anyone there knows.

-Andrew


Reply via email to