You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Martin Marinschek (JIRA)" <de...@myfaces.apache.org> on 2006/02/11 15:15:00 UTC
[jira] Commented: (MYFACES-1110) findComponent return null for a
valid clientId
[ http://issues.apache.org/jira/browse/MYFACES-1110?page=comments#action_12366012 ]
Martin Marinschek commented on MYFACES-1110:
--------------------------------------------
Try to switch over to t:dataTable.
I implemented a new version of findComponent for this kind of problems.
regards,
Martin
> 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
> 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