[ 
https://issues.apache.org/jira/browse/MYFACES-3168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13132926#comment-13132926
 ] 

Leonardo Uribe commented on MYFACES-3168:
-----------------------------------------

Hi Richard

I checked the comment on metawidget forum and it seems like a typo error. The 
datatable definition is:

<h:dataTable id="communications" value="#{contact.currentCommunications}" 
var="_communication"

but the metawidget usage is this:

<m:metawidget value="#{communication.current.value}" rendererType="simple" 
rendered="#{!contact.readOnly}"/>

It should be

<m:metawidget value="#{_communication.current.value}" rendererType="simple" 
rendered="#{!contact.readOnly}"/>

Now about this bug: I think we have done everything we can. I have discussed 
earlier this problem with other people. The last thing done was on 
MYFACES-3289. Here are some comments discussed earlier:

?? >> Also your workarounds of finding the components by executing 
findComponent 
?? >> are not really safe: findComponent does not setup the context of the 
component 
?? >> which you would need to have. Only invokeOnComponent or a treevisit can 
do 
?? >> this for you!

LU >> Yes, I know, but note both invokeOnComponent and visitTree requires a 
clientId. 
LU >> The problem is for example when the component is inside a datatable. 
There is 
LU >> only one real UIComponent instance, but it could be many "virtual" 
instances 
LU >> per row. Since PreRenderViewEvent is propagated to UIViewRoot, there is 
no 
LU >> associate context, so the only way to do it is create a findComponent 
expression 
LU >> to locate the real component instance.

LU >>  I know in this case a invokeOnComponent or visitTree with a 
"findComponent 
LU >> expression" sounds better, but there is nothing on the spec that helps. 
Usually 
LU >> the tasks done in that location does not require the context, so it is 
valid to 
LU >> simplify this case and expect only one call per real component. In 
conclusion, 
LU >> I agree with the solution done in mojarra for this one, even if it is not 
the 
LU >> best we can do in this case.

LU >> Anyway, there is something missing on the spec. Some weeks ago, I sent a 
mail 
LU >> to the EG list under the name:

LU >> [jsr344-experts] Referencing composite component attributes in child 
components 
LU >> outside of a tree traversal

LU >> I think at the end there is something related to this one.

It would be great to have a way to call a visitTree or invokeOnComponent using 
a "find component expression". In that way, from PreRenderViewEvent the 
developer can set up the context using such call. For now all that should be 
done outside the spec.
                
> Bound attribute values resolve to NULL during PreRenderViewEvent for nested 
> composite components
> ------------------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3168
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3168
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: General
>    Affects Versions: 2.0.6, 2.1.0
>         Environment: Windows 7 x64 Enterprise. 
> JDK 1.6.0_25. 
> Eclipse Version: Helios Service Release 2
> Build id: 20110218-0911
>            Reporter: MAtthew Sweeney
>            Assignee: Leonardo Uribe
>         Attachments: jsf-testing-2.zip, jsf-testing-myfaces.zip, 
> screenshot-1.jpg
>
>
> When nesting custom composite components, any data bound attributes (eg 
> #{someValueExpression} ) will resolve to null during the PreRenderViewEvent. 
> This only occurs on the second level or deeper nested component (the 
> top-level component in the page works fine).
> This same issue occurs on JSF RI 2.0.4, 2.1.x, 2.2.x
> I have an eclipse project for upload that reproduces the problem.
> I have no cause for the issue at this time.
> Cheers,
> Matt

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to