myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave (JIRA)" <...@myfaces.apache.org>
Subject [jira] Commented: (MYFACES-1110) findComponent return null for a valid clientId
Date Sat, 11 Feb 2006 18:59:31 GMT
    [ http://issues.apache.org/jira/browse/MYFACES-1110?page=comments#action_12366020 ] 

Dave commented on MYFACES-1110:
-------------------------------

I was using t:dataTable.

I just realized that the clientId for components in a dataTable has row number (e.g., 1 in
the example above), it is 
meaningful only when walking through the table.(dynamic)

If I can call findComponent on ViewRoot that is the root of  a static tree, will it give me
the component (dynamic)? Messages are queued with clientId, not component.



> findComponent return null for a valid clientId
> ----------------------------------------------
>
>          Key: MYFACES-1110
>          URL: http://issues.apache.org/jira/browse/MYFACES-1110
>      Project: MyFaces
>         Type: Bug
>   Components: Implementation
>     Versions: Nightly
>  Environment: JBoss 4.0.3, XP
>     Reporter: Dave
>     Assignee: Martin Marinschek
>     Priority: Critical

>
> In a PhaseListener, first get all the clientId(s) with queued messages, then try to find
the components. But ViewRoot.findComponent(clientId) return null.
>  
> public void beforePhase(PhaseEvent event) {
>     FacesContext context = event.getFacesContext();
>     UIViewRoot root = context.getViewRoot();
>     Iterator<String> itr = context.getClientIdsWithMessages();
>     while (itr.hasNext()) {
>       String clientId = itr.next();
>       UIComponent component = root.findComponent(clientId);
>       // ERROR: component is null
>       ....
>     }
> }
> From debugger, clientId is 
> emp:empForm:empTable:1:salary:_idJsp144
> The clientId is returned from context.getClientIdsWithMessages();
> It must be valid, but root.findComponent() returns NULL.
> JSF should have the following API 
> FacesContext.getComponentsWithMessages();
> which is better than getClientIdsWithMessages();

-- 
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


Mime
View raw message