Yes - but I extended the findComponent concept for data table to allow scoped id's with a row-identifier included, so this is now much the same as a client-id, except if the renderer does a conversion.
So what Dave wants ought to work. In the latest nightly build and several before them. regards, Martin On 2/12/06, Jacob Hookom <[EMAIL PROTECTED]> wrote: > findComponent has nothing to do with client ids. They work off of > different logic. > > Martin Marinschek (JIRA) wrote: > > > [ > > http://issues.apache.org/jira/browse/MYFACES-1110?page=comments#action_12366049 > > ] > > > >Martin Marinschek commented on MYFACES-1110: > >-------------------------------------------- > > > >Hmmm... > > > >yes, you should be able to search from the view-root no problem. > > > >Can you debug a little through find-component? > > > >I have a working test-case in tomahawks test source, plus we use the method > >successfully in the AJAX part. > > > >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 > >> 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(); > >> > >> > > > > > > > > > -- > Jacob Hookom - Minneapolis > ---------------------------- > JSF-EG, JSF-RI, EL, Facelets > > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces
