dev@jsftemplating.java.net

copyProperty and ValueExpressions

From: Jaco Prinsloo <jacolists_at_gmail.com>
Date: Thu, 26 Jun 2008 14:20:01 +0200

Hi All (and specifically Ken),

The new copyProperty expression works fine, except if I have something in
line of the following:

<h:selectOneMenu>
    <f:selectItems value="$copyProperty{rowListItems, true}" />
</h:selectOneMenu>

Instead of creating the SelectItems it insteads generates a String which
looks something like this:

<f:selectItems value="Test.xhtml @23,63
rowListItems="[javax.faces.model.SelectItem_at_83be58,
javax.faces.model.SelectItem_at_1459f5e,
javax.faces.model.SelectItem_at_1e1d5ff,
javax.faces.model.SelectItem_at_1a88151,
javax.faces.model.SelectItem_at_1c22829]":
ValueExpression[[javax.faces.model.SelectItem_at_220327,
javax.faces.model.SelectItem_at_fd0f27,
javax.faces.model.SelectItem_at_1edf60e,
javax.faces.model.SelectItem_at_1b552bf,
javax.faces.model.SelectItem_at_14baaaf]]"></f:selectItems>

I tried to follow the code, but I can't really say I understand enough of it
yet. It seems to me that at Line 437 of ComponentUtil.java, where it is
supposed to create a ValueExpression for the following String:

<f:selectItems value="Test.xhtml @23,63 rowListItems="#{TestBean.rowList}":
ValueExpression[#{TestBean.rowList}]">

It creates a ValueExpression which has that exact same String as the expr
value (whereas, I suppose, it should only have 'TestBean.rowList'?).
If that's not the problem, my second guess would be that it calls toString
on the SelectItems somewhere where it shouldn't.

If you could have a look at it I'd appreciate it,
Thanks,
Jaco